简介
1.聚合可以看作是对查询结果的汇总。aggregation的强大在于它能嵌套并实现多级汇总。通常分为四类聚类:metric、bucket、pipeline、matrix
2.bucket和SQL的group by作用类似,常于metric结合使用,bucket是可以嵌套的;metric是对bucket中的一些统计信息;matrix在多字段上进行操作,从请求的文档的字段中提取信息,返回矩阵结果。
metric(指标聚合)
1.min/max/sum/avg
POST /bank/account/_search
{
"aggs": {
"age_min": {
"min": {
"field": "age"
}
}
}
}
max/sum/avg等的使用类似,计算时所用的值也可以由提供的脚本生成。
比如:
{
"aggs": {
"age_min": {
"min": {
"script": {
"source" : "account.balance.value" }
}
}
}
}
2.stats/extend_stats
stats是一个多值统计,包括count/min/max/avg/sum
extend_stats相较于stats多了平方和(sum_of_squrares)方差(variance)、标准差(std_deviation)
也可以由提供的脚本生成.
可以使用missing参数,该参数指定当有缺失值时,应该如何处理,默认忽视这样的数据。
GET /exams/_search
{
"size": 0,
"aggs" : {
"grades_stats" : {
"extended_stats" : {
"field" : "grade",
"missing": 0
}
}
}
}
另外还有,与地理坐标相关的
Geo Bounds Aggregation