别名解决的问题
在运行的集群中可以从一个索引切换到另一个索引
可以给多个索引进行分组
可以与路由搭配使用
别名的相关操作
准备数据阶段
PUT l1/doc/1
{
"title":"我想要睡你"
}
PUT l2/doc/1
{
"title":"你却拿我当兄弟"
}
PUT l3/doc/1
{
"title":"不过,我不介意"
}
注意:如果用curl命令
curl -H "Content-Type: application/json" -XPOST 'http://20.0.7.5:9750/_aliases' -d '
{
请求json串
}
'
创建别名 给l1索引创建别名a1(_aliases actions add)
POST _aliases
{
"actions": [
{
"add": {
"index": "l1",
"alias": "a1"
}
}
]
}
curl -H "Content-Type: application/json" -XPOST 'http://20.0.7.5:9750/_aliases' -d '
{
"actions": [
{ "add": {
"alias": "chpp_fence_real_bigdata_v1",
"index": "chpp_fence_real_bigdata_v1_20211211"
}}
]
} '
查看别名
GET l1/_alias
查看结果
{
"l1" : {
"aliases" : {
"a1" : { }
}
}
}
删除别名
POST _aliases
{
"actions": [
{
"remove": {
"index": "l1",
"alias": "a1"
}
}
]
}
重命名别名(淘汰旧的索引上的别名,生成新的索引上的别名)
POST _aliases
{
"actions": [
{
"remove": {
"index": "l1",
"alias": "a1"
}
},
{
"add": {
"index": "l2",
"alias": "a1"
}
}
]
}
为多个索引指向同样的别名(证实为多个索引分组)
POST _aliases
{
"actions": [
{"add": {"index": "l1", "alias": "a1"}},
{"add": {"index": "l2", "alias": "a1"}},
{"add": {"index": "l3", "alias": "a1"}}
]
}
使用indeices数组语法在一个操作中为多个索引指向别名
多个索引指向同一别名
POST _aliases
{
"actions": [
{"add": {"indices": ["l1", "l2", "l3"], "alias": "a2"}}
]
}
一个索引指向多个别名
POST _aliases
{
"actions": [
{"add": {"index": "l1", "aliases": ["a1", "a2", "a3"]}}
]
}
将别名关联到拥有公共名称的索引(将索引 l1 l2 l3指向f1别名)
POST _aliases
{
"actions": [
{"add": {"index": "l*", "alias": "f1"}}
]
}