管道聚合
管道聚合是一种将多个聚合操作串联起来的方式。可以在一个聚合操作中使用另一个聚合操作的结果,来进行更复杂的计算。以下是一个按照桶进行分组,并计算每个桶的平均值的管道聚合示例:
代码语言:javascript复制{
"size": 0,
"aggs": {
"avg_price": {
"avg": {
"field": "price"
}
},
"max_price": {
"max": {
"field": "price"
}
},
"min_price": {
"min": {
"field": "price"
}
},
"sum_price": {
"sum": {
"field": "price"
}
},
"count_color": {
"cardinality": {
"field": "color.keyword"
}
},
"group_by_color": {
"terms": {
"field": "color.keyword"
},
"aggs": {
"avg_price": {
"avg": {
"field": "price"
}
},
"max_price": {
"max": {
"field": "price"
}
},
"min_price": {
"min": {
"field": "price"
}
},
"sum_price": {
"sum": {
"field": "price"
}
}
}
}
}
}
这个聚合查询可以同时计算文档中 price
字段的平均值、最大值、最小值、总和,以及 color
字段中不同值的个数。同时,对 color
字段进行聚合,可以得到每种颜色下的 price
字段的平均值、最大值、最小值、总和。