Elasticsearch 桶聚合
Elasticsearch 桶聚合(Bucket Aggregation)允许我们创建用于分组文档的桶。桶聚合可以包含其他的聚合,比如统计聚合、范围聚合等。
以下是一个基于Elasticsearch DSL语言的桶聚合示例,假设我们有一个记录销售商品信息的Elasticsearch索引,我们想要根据商品的品牌对销售数据进行分组:
GET /sales/_search
{
"size": 0,
"aggs": {
"brands": {
"terms": {
"field": "brand",
"size": 10
},
"aggs": {
"sales_per_brand": {
"sum": {
"field": "price"
}
}
}
}
}
}
在这个例子中,brands
是桶聚合的名称,terms
指定了我们要进行的桶聚合类型(词频),field
指定了用于分桶的字段(品牌),size
指定了返回的桶的最大数目。sales_per_brand
是一个子聚合,它计算每个品牌的总销售额。size
参数设置为10,表示我们只想要Top 10的品牌。"size": 0
意味着我们不需要返回任何文档,只关心聚合结果。
评论已关闭