繁体   English   中英

Python Elasticsearch 聚合查询

[英]Python Elasticsearch aggregated query

我正在努力获得基于查询的聚合响应......例如,在 Kibana 可视化中,在创建包含我需要的聚合和查询的表之后,我可以通过进入可视化和 Inspect -> View 来查看请求:请求 -> 请求。 这给了我整个请求,结构如下:

{
 "aggs":{...},
  "size": 0,
  "fields":[...],
  "script_fields": {},
  "stored_fields": [
    "*"
  ],
  "runtime_mappings": {},
  "_source": {
    "excludes": []
  },
  "query": {
    "bool":{...}
  }
}

如何使用 API 获得 Kibana 可视化中显示的相同数据集? 我尝试将 API 请求字段翻译为 es.search() function,如下所示:

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

解决了。 查询工作正常,聚合数据在响应的“聚合”部分返回,该部分与“命中”部分分开。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM