聚合查询
对查询的数据进行聚合操作
分类聚合 - terms
根据字段值,进行分类
{
"size" : 0,
"aggs" : {
"per_count" : {
"terms" : {
"size" : 3, # 不加这个默认只会返回10条数据
"field" : "codeName"
}
}
}
}
分析聚合 - max
分类结果中的最值,平均值等聚合操作
{
"size" : 0,
"aggs" : {
"per_count" : {
"terms" : {
"size" : 10000,
"field" : "name"
},
"aggs" : {
"max_count" : {
"max" : {
"field" : "view"
}
}
}
}
}
}
所有聚合 - extended_stats
返回聚合分析后所有的指标
{
"aggs" : {
"grades_stats" : { "extended_stats" : { "field" : "grade" } }
}
}
聚合结果去重排序 - order AND cardinality
对查询结果进行排序,然后去重
{
"aggs" : {
"all_interests" : {
"terms" : {
"field" : "pubDay",
"order" : { "distinct_mediaNameZh" : "desc" }
},
"aggs" : {
"distinct_mediaNameZh" : {
"cardinality" : {
"field" : "mediaNameZh"
}
}
}
}
}
}
常用聚合 - 表单
术语 | 说明 |
---|---|
count | 统计某个字段的数量 |
cardinality | 去重统计某个字段的数量(有少量误差) |
filter | 聚合过滤 |
terms | 按某个字段分类 |
sum | 求和 |
avg | 求平均值 |
max | 最大值 |
min | 最小值 |
dateHistogram | 按日期间隔分组 |
topHits | 获取聚合里面的结果 |
nested | 嵌套的聚合 |
reverseNested | 反转嵌套 |