What is the Elasticsearch-py equivalent to alias actions?

后端 未结 2 1929
囚心锁ツ
囚心锁ツ 2021-02-13 16:30

I am trying to implement multiples indices approach using elasticsearch-dsl. There are basically two steps:

1. Create aliases:

PUT /twee         


        
相关标签:
2条回答
  • 2021-02-13 16:46
    index_list_for_realias = [...]
    aliases_list_to_realias = [...]
    
    for i in index_list_for_realias:
        print(i)
        for j in aliases_list_to_realias:
            es.indices.put_alias(index=i, name="logstash5-uni-" + j, body={
                    "filter": {
                        "term": {
                            "uni": j
                        }
                    }
                }
            )
    
    0 讨论(0)
  • 2021-02-13 16:55

    To implement that you need to use elasticsearch-py:

    from elasticsearch import Elasticsearch
    es = Elasticsearch()
    
    # use es.indices instead of instantiating IndicesClient
    es.indices.put_alias(index='tweets_1', name='tweets_search')
    es.indices.put_alias(index='tweets_1', name='tweets_index')
    
    es.indices.update_aliases({
      "actions": [
        { "add":    { "index": "tweets_2", "alias": "tweets_search" }}, 
        { "remove": { "index": "tweets_1", "alias": "tweets_index"  }}, 
        { "add":    { "index": "tweets_2", "alias": "tweets_index"  }}  
      ]
    })
    
    0 讨论(0)
提交回复
热议问题