Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

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.

like image 661
Mayank Jha Avatar asked Oct 28 '16 07:10

Mayank Jha


People also ask

How do I check my ES index?

You can query localhost:9200/_status and that will give you a list of indices and information about each. The response will look something like this: { "ok" : true, "_shards" : { ... }, "indices" : { "my_index" : { ... }, "another_index" : { ... } } }

How do you check if an index is valid in a list Python?

Python Check if List Index Exists Using Python len() Function. To check if a list index exists in a list using Python, the easiest way is to use the Python len() function. You can also check if an index exists using exception handling.


1 Answers

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.

like image 145
ChintanShah25 Avatar answered Oct 14 '22 11:10

ChintanShah25