Мне интересно, можно ли запросить 2 индикатора в Elasticsearch и отобразить результаты, смешанные вместе в 1 таблице.Например:
Индексы:
food-american-burger
food-italian-pizza
food-japanese-ramen
food-mexican-burritos
#query here for burger and pizza, and display the results in a csv file
#i.e. if there was a timestamp field, display results starting from the most recent
Я знаю, что вы можете сделать запрос для food- *, но он даст 2 индекса, которые мне не нужны.
Я искал многозадачный модуль для Elasticsearch DSL, но документация показывает только экземпляр 1 запроса индекса:
ms = MultiSearch(index='blogs')
ms = ms.add(Search().filter('term', tags='python'))
ms = ms.add(Search().filter('term', tags='elasticsearch'))
Часть 1:
Возможно ли использовать это для нескольких индексов?В конечном счете, я хотел бы запросить x количество признаков и отобразить все данные в одном удобном для восприятия формате (csv, json и т. Д.), Но я не уверен, как выполнить один запрос только для индексов, которые яхочу.
В настоящее время у меня есть возможность выполнять запросы и записывать данные, но каждый файл данных будет состоять только из того индекса, к которому я запросил.Я хотел бы отобразить все данные в одном файле.
Часть 2:
Данные хранятся в словаре, а затем я записываю их в CSV.В настоящее время он заказывается по метке времени.Код:
sorted_rows = sorted(rows,key=lambda x: x['@timestamp'], reverse=True)
for row in sorted_rows:
writer.writerow(row.values())
При записи в CSV поле отметки времени не является первым столбцом.Я храню поля в словаре и обновляю этот словарь для каждого нажатия Elasticsearch, а затем записываю его в CSV.Есть ли способ переместить поле отметки времени в первый столбец?
Спасибо!