关于 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 里的数据。