Как проверить, существует ли индекс в elasticsearch с помощью скрипта python и выполнить обработку исключений над ним?

Как проверить, существует ли индекс или нет с помощью запроса python?

Я передаю свой индекс как переменную, назначенную вне запроса как : -

 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
      }
    }
  }})

теперь некоторые из индексов отсутствуют для определенной даты, однако я хочу, чтобы процесс выполнялся независимо от этого. Я получаю следующую ошибку, когда индекс отсутствует-->

elasticsearch.исключения.NotFoundError: TransportError (404, u'index_not_found_exception')

Я не уверен, как работает обработка исключений в elasticsearch.

1 ответов


вы должны вызвать его на показатели. В настоящее время вы используете существует класса поиска, который сообщает Вам, существует ли данный документ в индексе, а не сам индекс.

попробуйте этот код

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

есть и более опции Если вы хотите использовать.