一、计数相关
count 计数聚合
不常使用,通常查询返回都有总个数avg 平均聚合
用于获取聚合文档中存在的任何数字字段的平均值请求正文:
{
"aggs":{
"avg_grade":{"avg":{"field":"fees"}}
}
} 返回示例:
{
...
"aggregations": {
"avg_grade": {
"value": 75.0
}
}
} weightedAvg
带权重的平均值计算,计算公式,加权平均值:∑(值*权重) / ∑(权重)1、需确定平均值字段和权重字段,字段都为数值类型
2、如果权重都相等,则和常规求平均结果一致
如果权重都为0,则平均值为null
如果权重值不同,可以根据公式进行计算请求示例:
POST /exams/_search
{
"size": 0,
"aggs": {
"weighted_grade": {
"weighted_avg": {
"value": {
"field": "grade"
},
"weight": {
"field": "weight"
}
}
}
}
} 返回示例:
{
...
"aggregations": {
"weighted_grade": {
"value": 70.0
}
}
} max 最大聚合
查找聚合文档中特定数字字段的最大值请求示例
POST /sales/_search?size=0
{
"aggs": {
"max_price": { "max": { "field": "price" } }
}
} 返回示例:
{
...
"aggregations": {
"max_price": {
"value": 200.0
}
}
} min 最小聚合
查找聚合文档中特定数字字段的最小值
请求示例:
POST /sales/_search?size=0
{
"aggs": {
"min_price": { "min": { "field": "price" } }
}
} 返回示例:
{
...
"aggregations": {
"min_price": {
"value": 10.0
}
}
} sum 总和聚合
聚合计算聚合文档中特定数字字段的总和请求示例:
POST /sales/_search?size=0
{
"query": {
"constant_score": {
"filter": {
"match": { "type": "hat" }
}
}
},
"aggs": {
"hat_prices": { "sum": { "field": "price" } }
}
} 返回示例:
{
...
"aggregations": {
"hat_prices": {
"value": 450.0
}
}
} stats 指标聚合
返回包括以上count,min,max,sum,avg聚合统计的数值请求示例:
POST /exams/_search?size=0
{
"aggs": {
"grades_stats": { "stats": { "field": "grade" } }
}
} 返回示例:
{
...
"aggregations": {
"grades_stats": {
"count": 2,
"min": 50.0,
"max": 100.0,
"avg": 75.0,
"sum": 150.0
}
}
} extendedStats 指标的扩展
对结果进行进一步分析请求示例:
GET /exams/_search
{
"size": 0,
"aggs": {
"grades_stats": { "extended_stats": { "field": "grade" } }
}
} 返回示例:
{
...
"aggregations": {
"grades_stats": {
"count": 2,
"min": 50.0,
"max": 100.0,
"avg": 75.0,
"sum": 150.0,
"sum_of_squares": 12500.0,
"variance": 625.0,
"variance_population": 625.0,
"variance_sampling": 1250.0,
"std_deviation": 25.0,
"std_deviation_population": 25.0,
"std_deviation_sampling": 35.35533905932738,
"std_deviation_bounds": {
"upper": 125.0,
"lower": 25.0,
"upper_population": 125.0,
"lower_population": 25.0,
"upper_sampling": 145.71067811865476,
"lower_sampling": 4.289321881345245
}
}
}
}



