首页  

Elasticsearch聚合分析简介     所属分类 elasticsearch 浏览量 970
聚合 Aggregation

在搜索的结果集合上直接进行统计

四种类型的聚合

Bucket Aggregation     分桶  
Metric Aggregation     最大值、最小值、平均值等
Pipeline Aggregation   管道分析,对其他聚合结果进行二次聚合
Matrix Aggregation     矩阵分析,支持对多个字段的操作并提供一个结果矩阵


Bucket  相当于 SQL 中的 GROUP
Metric  相当于 SQL 中的 COUNT MIN MAX SUM 等聚合函数

Bucket分桶策略

Terms           按照 term 来分桶,text类型按照分词后的结果分桶
Range           数值范围 
Date Range      日期范围 
Histogram       直方图,以固定的间隔分割数据
Date Histogram  针对日期的直方图或者柱状图,时序数据分析中常用的聚合分析类型


Metric 单值分析和多值分析
单值分析,只输出一个分析结果
Min Max Avg Sum
Cardinality (相当于 SQL 中的 distinct)

多值分析,输出多个分析结果
Stats ExtendedStats
Percentiles PercentileRanks
TopHits

Stats  一次性得到最大值、最小值、平均值、中值等数据
ExtendedStats 是对 Stats 的扩展,包含了更多的统计数据,比如方差、标准差等
Percentiles 和 PercentileRanks 是百分位数的一个统计
TopHits    分桶后获取桶内最匹配的文档列表



聚合实例 /articles/_search { "size": 0, "aggs": { "sum_view_count": { "sum": { "field": "view_count" } } } } { "took": 181, "timed_out": false, "_shards": { "total": 1, "successful": 1, "skipped": 0, "failed": 0 }, "hits": { "total": 4830, "max_score": 0, "hits": [] }, "aggregations": { "sum_view_count": { "value": 168671 } } }
{ "size": 0, "aggs": { "view_count_stats": { "stats": { "field": "view_count" } } } } { "view_count_stats": { "count": 1110, "min": 6, "max": 971, "avg": 151.95585585585584, "sum": 168671 } } 分桶聚合 { "size": 0, "aggs": { "month_count": { "terms": { "size": 100, "field": "create_month" } } } }

上一篇     下一篇
Elasticsearch 搜索 分词器 过滤器

elasticsearch使用7大原则

elasticsearch profile 使用简介

elasticsearch 查询 DSL 指定分词器

elasticsearch query 和 filter 的区别

doc_values和fielddata