Как проверить, существует ли индекс в 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
есть и более опции Если вы хотите использовать.