Elasticsearch:在 Elasticsearch 中的 Composite Aggregation
时间: 2024-03-08 11:43:32 浏览: 56
在 Elasticsearch 中,Composite Aggregation 是一种用于聚合数据的高级聚合类型。它允许您按照多个字段进行分组,并且可以在每个分组中执行其他聚合操作。
Composite Aggregation 的主要作用是在大数据集上进行分组和聚合操作,同时保持较低的内存消耗。它通过使用游标(cursor)的方式来处理大量的结果,以避免将所有结果加载到内存中。
使用 Composite Aggregation,您可以按照指定的字段顺序进行分组,并且可以指定每个字段的排序方式。此外,您还可以在每个分组中执行其他聚合操作,例如计算平均值、求和、最大值等。
以下是使用 Composite Aggregation 的示例查询:
```
GET /your_index/_search
{
"size": 0,
"aggs": {
"group_by_field": {
"composite": {
"sources": [
{
"field1": {
"terms": {
"field": "field1.keyword"
}
}
},
{
"field2": {
"terms": {
"field": "field2.keyword"
}
}
}
]
},
"aggs": {
"avg_field3": {
"avg": {
"field": "field3"
}
},
"sum_field4": {
"sum": {
"field": "field4"
}
}
}
}
}
}
```
上述查询将按照 field1 和 field2 进行分组,并在每个分组中计算 field3 的平均值和 field4 的总和。
阅读全文