Elasticsearch:Aggregation聚合的使用
聚合函数(Aggregation)
Elasticsearch做查询时,有一些查询满足不了我们的查询条件,这时候就需要aggregation函数,聚合函数中有两个非常重要的语法,桶(Bucket)和指标(Metric)。Bucket可以定义文档集合,可以定义一个或多个,或者在集合中嵌套着定义集合;而Metric也称为计算度量,是以从文档中提取的值为基础进行的操作。
类比学习,es中的Bucket类似于SQL中的Group By,根据条件对元素进行分组;而Metric则和SQL中的SUM,MAX作用相似。
举一个例子,更加具象化的理解。这是一条使用了aggregations聚合的es查询语句,语句的目的是查询西京市内的各个区县的用电情况,以及每个区县里耗电最高的三个行业。
{
"size": 0,
"query": {
"bool": {
"must": [
{
"term": {
"tbCity": "西京市"
}
}
],
"must_not": {
"term": {
"isDelete": 1
}
}
}
},
"aggs": {
"Cou