关于 elasticsearch 索引的理解。
别名是一组索引的辅助名称,一个别名可以指向多个索引,一个索引可以有多个别名。
使用别名后,在重建索引数据时,无需停机或更改程序代码。
别名有种类似Nginx反向代理的感觉,当访问别名时,相当于访问的实际索引的代理。
下面以一个实例做讲解。
现在假设有三个索引分别为:
order_202301
order_202302
order_202303
1、创建别名
POST _aliases { "actions": [ { "add": { "index": "order_202301", "alias": "order_alias" } }, { "add": { "index": "order_202302", "alias": "order_alias" } } ] } #注意这里是多个索引使用了同一个别名,经过以上操作后,以后通过别名 order_alias 访问 es 数据的时候会同时访问到 order_202301 order_202302 两个索引,不会访问到 order_202303 索引。
2、移除别名
POST _aliases { "actions": [ { "remove": { "index": "order_202301", "alias": "order_alias" } } ] } #经此操作后,通过别名 order_alias 仅能访问 order_202302 索引里的数据。
3、切换别名
POST _aliases { "actions": [ { "remove": { "index": "order_202301", "alias": "order_alias" } }, { "add": { "index": "order_202303", "alias": "order_alias" } } ] } #经过此操作后,通过别名 order_alias 可以访问索引 order_202302 order_202303 里的数据。