gpt4 book ai didi

python - 在 Elasticsearch 中查询 2 个索引?

转载 作者:行者123 更新时间:2023-12-03 00:50:14 24 4
gpt4 key购买 nike

我想知道是否可以在 Elasticsearch 中查询 2 个指标,并将结果混合在一起显示在 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。有没有办法将时间戳字段移动到第一列?

谢谢!

最佳答案

根据Elasticsearch Docs ,您可以使用 food-american-burger 查询单个索引(例如 food-american-burger,food-italian-pizza )、多个逗号分隔的索引(例如 _all )或所有索引关键词。

我没有亲自使用过 Python 客户端,但这是一个 API 约定,应该适用于任何官方 Elasticsearch 客户端。

对于第 2 部分,您可能应该提交一个单独的问题,以将每个问题的内容保留在一个主题中,因为这两个主题没有直接关系。

关于python - 在 Elasticsearch 中查询 2 个索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54873703/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com