ES 聚合分组查询 语法
时间: 2023-12-12 18:47:26 浏览: 86
ES 聚合分组查询的语法如下:
```
GET index/_search
{
"size": 0,
"aggs": {
"group_by_field": {
"terms": {
"field": "field_name"
}
}
}
}
```
其中 `index` 是索引名称,`size` 设置为 0 意味着只返回聚合结果而不返回文档。
`aggs` 字段是聚合查询的核心部分,这里以 `group_by_field` 为例进行分组查询,其中 `terms` 指定了分组的字段名称。
这样的查询会返回按照 `field_name` 字段进行分组后每个分组的文档数。
类似还有 count, avg,min,max,sum,top_hits等聚合函数。
例如:
```
"aggs": {
"average_price": {
"avg": {
"field": "price"
}
}
}
```
这样就是求价格平均值
```
"aggs": {
"group_by_author": {
"terms": {
"field": "author"
},
"aggs": {
"top_books": {
"top_hits": {
"size": 3
}
}
}
}
}
```
这样就是求每个作者的3本销量最高的书
阅读全文