How to check if an index exists in elasticsearch using a python script and perform exception handling over it?

31,317

You have to call it on indices. Currently you are using exists of search class which tells you whether given document exists in the index and not the index itself.

Try this code

if es.indices.exists(index="index"):
    Your code for search

There are also more options if you want to use.

Share:
31,317

Related videos on Youtube

Mayank Jha
Author by

Mayank Jha

Updated on July 09, 2022

Comments

  • Mayank Jha
    Mayank Jha almost 2 years

    How do I check whether an index exists or not using a python query?

    I'm passing my index as a variable assigned outside the query as :-

     i=int(datetime.datetime.now().strftime('%d'))+1
    indextring="index"
    for m in range (i-10,i):
        d = datetime.datetime(2016, 10, m, 18, 00).strftime('%Y-%m-%d')
        index1=datestring+d
        subfix="_"+datetime.datetime(2016, 10, m, 18, 00).strftime('%Y-%m-%d')
        es=Elasticsearch(['localhost:9200'])
        res = **es.search(index='{0}'.format(index1)**, doc_type="log",size=10000, from_=0, body={ "query": {
        "match": {
         ....Match condition follows
          }
        }
      }})
    

    Now, some of the index are not present for a particular date, however I want the process to run irrespective of that. I'm getting the following error when the index is not present-->

    elasticsearch.exceptions.NotFoundError: TransportError(404, u'index_not_found_exception')

    I'm not sure how the exception handling works in elasticsearch.

    • Val
      Val over 7 years
      You should try using the exists API call to check if an index exists.
    • Mayank Jha
      Mayank Jha over 7 years
      Tried it, can you look at my comment below to tcarmet's reply