索引 别名 就像一个快捷方式或软连接,可以指向一个或多个索引,也可以给任何一个需要索引名的API来使用。

索引别名用处:

1、在运行的集群中可以无缝的从一个索引切换到另一个索引(原子操作,无需担心别名未指向索引的短时间段)

2、给多个索引分组

3、给索引的一个子集创建视图

//创建索引别名方式1
POST /_aliases
{
    "actions" : [
        { "add" : { "index" : "index_test_1", "alias" : "test_alias" } }
    ]
}
//创建索引别名方式2
POST /index_test_1/_alias/test_alias
//创建索引别名方式3
PUT index_test_2
{
  "aliases": {
    "test_alias": {}
  }, 
  "settings": {
    "number_of_replicas": 1,
    "number_of_shards": 2
  },
  "mappings": {
    "test": {
      "dynamic": "strict",
      "properties": {
        "name": {
          "type": "text",
          "analyzer": "ik_max_word",
          "fields": {
            "keyword": {
              "type": "keyword"
            }
          }
        },
        "age": {
          "type": "integer"
        },
        "gender":{
          "type": "integer"
        }
      }
    }
  }
}
 
//移除索引别名
DELETE index_test_1/_alias/test_alias
或
POST /_aliases//移除并切换索引
{
    "actions" : [
        { "remove" : { "index" : "index_test_1", "alias" : "test_alias" } },
        { "add" : { "index" : "index_test_2", "alias" : "test_alias" } }
    ]
}
 
//查看索引别名
GET /*/_alias/test_alias  //这些索引别名指向哪些索引
GET /index_test_2/_alias/* //索引指向哪些别名

当我们拥有索引别名后,就可以通过索引别名,对索引别名中包含的所有所有进行搜索,和原本的查询完成一致,只需将索引名改成,索引别名即可:GET test_alias/_search?q=*。

GET test_alias/_search?q=*

GET index_test_1,index_test_2/_search?q=*

有索引别名指定两个索引后,以上两个查询时等同的。

就可以解决,按周期等情况,多个索引查询时,需要书写多个索引名的情景。

在7.0版本以下时,当索引别名对应多个索引时,不支持通过索引别名写入,当且仅当索引别名只对应一个索引时,才可以直接通过索引别名写入,否则还需通过索引名写入。

另外,索引别名中还可以指定,路由和过滤:

 
POST index_test_1/test?routing=1
{
  "name":"张三",
  "age":15
}
POST index_test_1/test?routing=5
{
  "name":"李四",
  "age":16
}
//索引别名,指定过滤
POST /_aliases
{
  "actions": [
    {
      "add": {
        "index": "index_test_1",
        "alias": "test_alias_age_gt15",
        "filter": {
          "range": {
            "age": {
              "gt": 15
            }
          }
        }
      }
    }
  ]
}
//索引别名,指定路由
POST /_aliases
{
  "actions": [
    {
      "add": {
        "index": "index_test_1",
        "alias": "test_alias_routting_1",
        "routing": "1"
      }
    }
  ]
}
 
GET test_alias_age_gt15/_search
GET test_alias_routting_1/_search


————————————————
版权声明:本文为CSDN博主「Sober丶」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_18837975/article/details/94365060