Elasticsearch 聚合的分类
Bucket 聚合(分桶聚合)
将文档划分到不同的组(桶)中,类似 SQL 的
GROUP BY。
常用 Bucket 聚合类型
| 聚合类型 | 描述 |
|---|---|
terms |
按字段值分组 |
range |
按数值范围分组聚合(负无穷-A,A-B,B-正无穷) |
date_histogram |
按时间区间分组聚合(如按天/小时/分钟) |
histogram |
按固定数值间隔分组聚合 |
filters |
多个filter条件分桶,多个where条件并行聚合互相独立 |
significant_terms |
找出重要的字段值,指定时间范围内频繁出现的值 |
composite |
支持分页的多字段分组聚合(适合大数据量) |
nested |
针对嵌套字段的聚合 |
children |
针对 parent-child 类型文档聚合 |
Metric 聚合(度量聚合)
对字段进行统计计算,常用于求最大、平均、求和等。
常用 Metric 聚合类型
| 聚合类型 | 描述 |
|---|---|
avg |
平均值 |
sum |
总和 |
min |
最小值 |
max |
最大值 |
value_count |
计数 |
cardinality |
去重计数(近似) |
stats |
同时返回 min/max/sum/avg/count |
extended_stats |
包含方差、标准差等更高级统计信息 |
percentiles |
百分位数(如 P95) |
percentile_ranks |
某个值处于所有数据的百分比位置 |
top_hits |
返回聚合桶中的文档(常用于取最新一条) |
scripted_metric |
自定义脚本的复杂聚合逻辑 |
Pipeline 聚合
对已有聚合结果进行二次聚合、计算或筛选。
常用 Pipeline 聚合类型
| 聚合类型 | 描述 |
|---|---|
derivative |
计算导数(变化率) |
moving_avg |
移动平均(7日均线等) |
bucket_script |
自定义脚本计算 |
bucket_selector |
条件筛选聚合桶 |
cumulative_sum |
累加求和 |
avg_bucket, sum_bucket 等 |
对聚合桶再做统计 |
Matrix 聚合(矩阵聚合)
适用于多个字段之间的统计分析(例如相关性分析)。
常用 Matrix 聚合类型
| 聚合类型 | 描述 |
|---|---|
matrix_stats |
多字段的统计分析(平均值、协方差、相关性) |
adjacency_matrix |
多条件组合匹配分析 |

浙公网安备 33010602011771号