索引别名的使用

Posted glblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了索引别名的使用相关的知识,希望对你有一定的参考价值。

1.官网

2.添加索引,索引名称:person,索引别名:aliastest

POST /_aliases
{
    "actions" : [
        { "add" : { "index" : "person", "alias" : "aliastest" } }
    ]
}
原理:API都会自动将别名转换为实际的索引名称,别名还可以映射到多个索引(关系1对多),别名不能与索引具有相同的名称。

 

3.索引别名查询:

GET /aliastest/_search

 

4.删除索引别名:

POST /_aliases
{
    "actions" : [
        { "remove" : { "index" : "person", "alias" : "aliastest" } }
    ]
}

 

5.重命名别名

原理:重命名别名是一个简单的删除然后添加操作

POST /_aliases
{
    "actions" : [
        { "remove" : { "index" : "person3", "alias" : "aliastest" } },
        { "add" : { "index" : "person3", "alias" : "aliasrenametest" } }
    ]
}

GET /aliasrenametest/_search

 

6.别名添加多个索引,为索引 person,person3,建立alias1别名

method1:

POST /_aliases
{
    "actions" : [
        { "add" : { "index" : "person", "alias" : "alias1" } },
        { "add" : { "index" : "person3", "alias" : "alias1" } }
    ]
}

GET /alias1/_search

method2:

POST /_aliases
{
    "actions" : [
        { "add" : { "indices" : ["person", "person3"], "alias" : "alias1" } }
    ]
}

method3:使用通配符

POST /_aliases
{
    "actions" : [
        { "add" : { "index" : "person*", "alias" : "all_test_indices" } }
    ]
}

 

7.使用别名创建视图

原理:使用查询DSL定义筛选器,并将其应用于所有搜索、计数、查询删除等类似的操作。

POST /_aliases
{
    "actions" : [
        {
            "add" : {
                 "index" : "person",
                 "alias" : "alias2",
                 "filter" : { "term" : { "name" : "zs" } }
            }
        }
    ]
}

 

8.路由和别名进行关联

POST /_aliases
{
    "actions" : [
        {
            "add" : {
                 "index" : "person",
                 "alias" : "aliasrountingtest",
                 "routing" : "1"
            }
        }
    ]
}

搜索和索引操作指定不同的路由值:

POST /_aliases
{
    "actions" : [
        {
            "add" : {
                 "index" : "person",
                 "alias" : "aliasrountingtest",
                 "search_routing" : "1,2",
                 "index_routing" : "2"
            }
        }
    ]
}

 按照以下搜索:routing将会按照search_routing和index_routing的交集2进行路由:

GET /alias2/_search?q=user:kimchy&routing=2,3

 

 9.写操作的索引别名

索引别名只能指定一个索引为可写操作,指定多个将不允许

POST /_aliases
{
    "actions" : [
        { "add" : { "index" : "person", "alias" : "alias1" , "is_write_index" : true} },
        { "add" : { "index" : "person3", "alias" : "alias1", "is_write_index" : false}}
   ]
}
PUT /alias1/doc/10/
{
"name":"zs"
}

 

10.交换索引的写操作,修改 is_write_index的属性值

POST /_aliases
{
    "actions" : [
        { "add" : { "index" : "person", "alias" : "alias1" , "is_write_index" : false} },
        { "add" : { "index" : "person3", "alias" : "alias1", "is_write_index" : true } }
    ]
}

以上是关于索引别名的使用的主要内容,如果未能解决你的问题,请参考以下文章

索引别名的使用

使用Mac命令别名,提升工作效率

elasticsearch alias

使用索引别名和Rollover滚动创建索引

java.lang.IllegalStateException:键 f0 的片段不再存在:索引 1

ORACLE 强制索引