首页/数据/NoSQL 速查/别名_aliases 管理与切换
Elasticsearch89 条

别名_aliases 管理与切换

别名指向一个或多个索引,用于读写解耦与零停机切换:写入别名用 is_write_index 指定唯一写目标,过滤别名可限定可见数据范围。

NoSQL 速查数据更新于 2026-10-12
接口POST /_aliases(原子批量增删)
写别名actions 中 add 时设 "is_write_index": true
过滤别名filter 字段把别名限定在部分文档上
路由别名routing 可绑定固定路由值,减少写入分片广播

示例

示例
POST /_aliases
{
  "actions": [
    { "add": { "index": "logs-000002", "alias": "logs", "is_write_index": true } },
    { "remove": { "index": "logs-000001", "alias": "logs" } }
  ]
}

GET /logs/_search
{ "query": { "match_all": {} } }
同一别名下要切换写入目标时,先把新索引加入并设为 is_write_index,再移除旧索引的写标记,最后摘掉旧索引上的别名。

易错点

  • 一个别名在同一时刻只能有一个写索引,重复指定会报错
  • GET /<alias>/_search 会同时查询别名下所有索引,切换期间新旧数据可能重复出现

数据来源与参考

  • Elasticsearch Guide: Aliases
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌