指标聚合
本章定位:聚合是 ES 区别于普通搜索引擎的核心能力——不仅能"找到",还能"分析"。指标聚合是最基础的分析工具。
定义与作用
**指标聚合(Metric Aggregations)**对数值字段执行统计运算:avg(平均值)、sum(总和)、max(最大值)、min(最小值)、stats(全统计五值)、cardinality(基数估算)。
完整示例:杨英的统计分析
POST /courses/_search
{
"size": 0,
"aggs": {
"stats_price": { "stats": { "field": "price" } },
"avg_rating": { "avg": { "field": "rating" } },
"total_enrollment": { "sum": { "field": "enrollment_count" } },
"category_count": { "cardinality": { "field": "category.keyword" } }
}
}
{
"aggregations": {
"stats_price": { "count": 8, "min": 19900, "max": 59900, "avg": 38400, "sum": 307200 },
"avg_rating": { "value": 4.62 },
"total_enrollment": { "value": 18950 },
"category_count": { "value": 5 }
}
}
小结
指标聚合用于数值的统计运算。stats 一次返回 count/min/max/avg/sum 五值。cardinality 是近似值(HyperLogLog++ 算法),误差约 3~5%。