聚合 API
聚合将您的数据汇总为 buckets 或 metrics 的统计信息。
聚合可以回答以下问题:
- 所有售出商品的平均价格是多少?
- 我们每天有多少个状态码为 500 的错误?
- 按颜色分组的汽车平均售价是多少?
前提条件
要在字段上使用聚合,需要为此字段创建快速字段索引。 快速字段索引是一种列式存储, 其中文档的值会被提取并存储。
例如,为文本创建一个快速字段以进行术语聚合。
name: category
type: text
tokenizer: raw
record: basic
fast: true
有关更多详细信息和示例,请参阅 索引配置 页面。
API 终端
聚合的终端是搜索终端:
- Quickwit API:
api/v1/<index id>/search
- Elasticsearch API:
api/v1/_elastic/<index_id>/_search
格式
聚合请求和结果将以与Elasticsearch兼容的JSON格式进行序列化和反序列化。 除非另有说明,否则您应该能够直接使用您的Elasticsearch聚合查询。
在下面的一些示例中,显示的不是完整的请求,而是仅显示 aggregations
的有效负载。
示例
Request
{
"query": "*",
"max_hits": 0,
"aggs": {
"sites_and_aqi": {
"terms": {
"field": "County",
"size": 2,
"order": { "average_aqi": "asc" }
},
"aggs": {
"average_aqi": {
"avg": { "field": "AQI" }
}
}
}
}
}
Response
...
"aggregations": {
"sites_and_aqi": {
"buckets": [
{
"average_aqi": {
"value": 32.62267569707098
},
"doc_count": 56845,
"key": "臺東縣"
},
{
"average_aqi": {
"value": 35.97893635571055
},
"doc_count": 28675,
"key": "花蓮縣"
}
],
"sum_other_doc_count": 1872055
}
}