zoukankan      html  css  js  c++  java
  • 索引别名

    索引 别名 就像一个快捷方式或软连接,可以指向一个或多个索引,也可以给任何一个需要索引名的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

  • 相关阅读:
    对象工厂函数与构造函数
    H5案例学习笔记
    对象工厂函数与构造函数
    JS对象的创建与使用
    CSS浏览器兼容性写法小结
    网页布局二三事
    关于URL、Web的一些概念
    什么是单点登录及解决方法
    Django--model-数据库操作
    Vue端增删改查实现
  • 原文地址:https://www.cnblogs.com/it-deepinmind/p/14580613.html
Copyright © 2011-2022 走看看