Python Elasticsearch 聚合查询
Posted
技术标签:
【中文标题】Python Elasticsearch 聚合查询【英文标题】:Python Elasticsearch aggregated query 【发布时间】:2022-01-18 18:19:27 【问题描述】:我正在努力获得基于查询的聚合响应...例如,在 Kibana 可视化中,在创建包含我需要的聚合和查询的表后,我可以通过进入可视化和检查来查看请求 - > 查看:请求 -> 请求。这给了我整个请求,结构如下:
"aggs":...,
"size": 0,
"fields":[...],
"script_fields": ,
"stored_fields": [
"*"
],
"runtime_mappings": ,
"_source":
"excludes": []
,
"query":
"bool":...
如何使用 API 获取 Kibana Visualization 中显示的相同数据集? 我尝试将 API 请求字段转换为 es.search() 函数,如下所示:
result = es.search(
index=index,
fields=[ ...],
script_fields=,
stored_fields=[
"*"
],
runtime_mappings=,
_source=
"excludes": []
,
query=...,
aggs=...,
size = 0,
scroll = '5m'
)
但是数据没有正确聚合,就像在 Kibana 可视化中一样。 另一个奇怪的行为是,如果我从 es.search() 中完全删除 aggs = ...,它会给我相同的数据集。
注意:我使用的是 elasticsearch 模块 7.16.1
【问题讨论】:
【参考方案1】:解决了。 查询工作正常,聚合数据在响应的“聚合”部分返回,该部分与“命中”部分分开。
【讨论】:
以上是关于Python Elasticsearch 聚合查询的主要内容,如果未能解决你的问题,请参考以下文章
python elasticsearch date_histogram聚合查询
Python Elasticsearch DSL 查询过滤聚合操作实例