ElasticSearch中的别名类似于java程序中的接口的概念或是mysql中的视图,客户端调用查询只需要关注别名即可,不必关心具体的数据从哪个索引取出来,可以动态切换,实现动态扩容,非常方便。
创建别名
POST /_aliases
{ "actions": [ { "add": { "index": "my_index_v1", "alias": "my_index" } }, { "add": { "index": "my_index_v2", "alias": "my_index" } } ]}
更改别名
POST /_aliases
{
"actions": [
{ "remove": { "index": "my_index_v1", "alias": "my_index" }},
{ "add": { "index": "my_index_v2", "alias": "my_index" }}
]
}
扩容索引或是更换索引,也不需要修改程序代码
POST /my_index/my/_search
{
"query": {
"match": {
"name": "dog"
}
}
}