作用
在elasticsearch里面给index起一个aliases(别名)能非常优雅的解决 两个索引无缝切换 的问题,这个功能在某些场景下非常使用。
应用场景一
比如电商的核心商品索引库,除了实时增量数据外,每天都要重建一遍索引,避免index里面的数据和db里面的数据不一致
应用场景二
准备:创建映射
PUT /blog_v1
{
"mappings": {
"properties": {
"title": {
"type": "text"
},
"content": {
"type": "text"
},
"author": {
"type": "keyword"
},
"like": {
"type": "integer"
},
"date": {
"type": "date"
}
}
}
}
执行结果:
{
"acknowledged" : true,
"shards_acknowledged" : true,
"index" : "blog_v1"
}
创建别名 - 单个别名操作
给该索引创建别名 blog
PUT /blog_v1/_alias/blog
执行结果:
{
"acknowledged" : true
}
创建别名 - 原子的执行多个别名操作
删除原索引的别名,并添加新索引的别名,别名相同,如下图:
提示:这里只是说明api用法,详见:不停机重建索引-修改映射类型
POST /_aliases
{
"actions": [
{
"remove": { //移除一个索引的别名
"index": "blog_v1",
"alias": "blog"
}
},
{
"add": { //增加另一个索引的别名
"index": "blog_v2",
"alias": "blog"
}
}
]
}
查询索引拥有的别名
GET /blog_v1/_alias/*
执行结果:
{
"blog_v1" : {
"aliases" : {
"myblog" : { } //别名
}
}
}
