elasticsearc使用指南之ES管道聚合(Pipeline Aggregation)
在Elasticsearch中,管道聚合(Pipeline Aggregation)允许你在一个或多个其他聚合的基础上,进一步进行计算。这种聚合可以用于创建复杂的统计信息,如移动平均值、百分位数等。
以下是一个管道聚合的简单示例,它计算了一个日期范围内所有文档的平均分数,并且以30天为窗口计算过去2天的移动平均分数:
GET /exams/_search
{
"size": 0,
"aggs": {
"average_score": {
"avg": {
"field": "score"
}
},
"moving_average": {
"avg_bucket": {
"buckets_path": "average_score",
"window": 2,
"shift": 30
}
}
}
}
在这个例子中,avg
聚合计算了所有文档的平均分数,并将其存储在average_score
聚合中。avg_bucket
聚合随后计算了过去30天内每2天的平均分数。window
参数定义了移动平均的窗口大小,而shift
参数表示每次移动的文档数量。这个查询不会返回任何文档,只会返回聚合结果。
评论已关闭