小皮博客 | Xiaopi's Blog

76-elastic-search-索引别名

索引别名像一个快捷方式或者软连接:
在运行的集群中可以直接无缝切换。
给多个索引分组
给索引的一个子集创建视图

基本用法:

  • 创建名为my_index_v1的索引,将别名my_index指向它

curl -X PUT “localhost:9200/my_index_v1”
curl -X PUT “localhost:9200/my_index_v1/_alias/my_index”

  • 检查这个别名指向了哪一个索引:

curl -X GET “localhost:9200/*/_alias/my_index”

{"my_index_v1":{"aliases":{"my_index":{}}}}
  • 哪些别名指向了这个索引:

    curl -X GET “localhost:9200/my_index_v1/_alias/*”

  • 利用索引别名修改映射:

    curl -X PUT "localhost:9200/my_index_v2" -H 'Content-Type: application/json' -d'
    {
      "mappings": {
          "my_type": {
              "properties": {
                  "tags": {
                      "type":   "string",
                      "index":  "not_analyzed"
                  }
              }
          }
      }
    }'
    
  • 使用reindex的方式重新索引数据。scroll导出数据,bulk导入新的索引。

  • Scroll API查出第一波数据及获取_scroll游标,去掉sort字段可以加快排序速度.
    curl -XGET 'localhost:9200/my_index_v1/_search?scroll=3m' -H 'Content-Type: application/json' -d'
    {
      "query":{
          "match_all": {}
      },
      "sort": ["_doc"],
      "size": 2000
    }
    
{"_scroll_id":"DnF1ZXJ5VGhlbkZldGNoBQAAAAAAAABPFnEwNDBMUERrUW1HZlpEZVJCRkxzRGcAAAAAAAAAUBZxMDQwTFBEa1FtR2ZaRGVSQkZMc0RnAAAAAAAAAE0WcTA0MExQRGtRbUdmWkRlUkJGTHNEZwAAAAAAAABMFnEwNDBMUERrUW1HZlpEZVJCRkxzRGcAAAAAAAAAThZxMDQwTFBEa1FtR2ZaRGVSQkZMc0Rn","took":84,"timed_out":false,"_shards":{"total":5,"successful":5,"failed":0},"hits":{"total":0,"max_score":null,"hits":[]}}
  • 根据返回的_scroll_id继续向下获取数据,直到结束

    curl -XGET  'localhost:9200/_search/scroll'  -d'
    {
      "scroll" : "30m", 
      "scroll_id" : "DnF1ZXJ5VGhlbkZldGNoBQAAAAAAAABPFnEwNDBMUERrUW1HZlpEZVJCRkxzRGcAAAAAAAAAUBZxMDQwTFBEa1FtR2ZaRGVSQkZMc0RnAAAAAAAAAE0WcTA0MExQRGtRbUdmWkRlUkJGTHNEZwAAAAAAAABMFnEwNDBMUERrUW1HZlpEZVJCRkxzRGcAAAAAAAAAThZxMDQwTFBEa1FtR2ZaRGVSQkZMc0Rn" 
    }'
    
  • 使用bulk API插入数据

    curl -XPOST 'localhost:9200/my_index_v2/_bulk' -H 'Content-Type: application/json' -d'
    {"index": {"_index" : "my_index_new", "_type" : "my_type", "_id" : "3"}}
    {"title" : "2017-01-01"}'
    
  • 使用原子操作将索引别名指向新的索引。


    curl -X POST “localhost:9200/_aliases” -H ‘Content-Type: application/json’ -d’
    {
    “actions”: [

    { "remove": { "index": "my_index_v1", "alias": "my_index" }},
    { "add":    { "index": "my_index_v2", "alias": "my_index" }}
    

    ]
    }’

版权声明

本文标题:76-elastic-search-索引别名

文章作者:盛领

发布时间:2018年10月22日 - 23:10:01

原始链接:http://blog.xiaoyuyu.net/post/bd9d21fe.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

如您有任何商业合作或者授权方面的协商,请给我留言:sunsetxiao@126.com

盛领 wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!
坚持原创技术分享,您的支持将鼓励我继续创作!