如何使用索引别名重建索引
来源:9-7 -reindex

lialzm
2018-06-12
官网说可以使用索引别名进行零停机重建索引
链接 https://www.elastic.co/guide/cn/elasticsearch/guide/current/index-aliases.html#index-aliases
请问怎么理解文章中的这句话
my_index 是一个指向当前真实索引的别名。真实索引包含一个版本号: my_index_v1 , my_index_v2 等等
意思是我在kibana看到的_index字段实际是别名吗?但是我用
GET /{index}/_alias
是无法获取到的
并且我也无法使用my_index这个别名
比如 我有一个log-2018.04.29需要重建索引
我的操作
创建一个新的索引log-2018.04.29_bak
执行_reindex
然后使用
curl -X POST "localhost:9200/_aliases" -H 'Content-Type: application/json' -d' { "actions": [ { "remove": { "index": "log-2018.04.29", "alias": "log-2018.04.29" }}, { "add": { "index": "log-2018.04.29_bak", "alias": "log-2018.04.29" }} ] } '
结果是报错了an index exists with the same name as the alias
写回答
1回答
-
alias 的名称和 index 名称是不能一样的,你这里都相同了,一般来讲会这样命名 alias。
log 是一个 alias 的名称,它指向 log-2018.04.29 log-2018.04.28 ...
你就把别名理解为一个软链,你可以随时更改它指向的实际索引。开发人员在实际写代码的时候都是使用这个别名的,对于它实际指向的索引,开发人员不需要知道。当你做运维迁移的时候,只需要把数据迁移到新的索引后,再修改 alias 指向新的索引就可以了,此时开发人员也不需要修改代码。这也就是所谓的零停机。
012018-06-18
相似问题