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