设计企业网站首页,建设银行网站安全性分析,wordpress 首页调用产品,网站建设 网页ES的聚合分析
什么是ES的聚合分析
ElasticSearch除搜索意外#xff0c;提供的针对ES数据进行统计分析的功能通过聚合#xff0c;我们会得到一个数据的概览#xff0c;是分析和总结全套的数据#xff0c;而不是寻找单独的文档高性能#xff0c;只要一条语句就可以得到分析…ES的聚合分析
什么是ES的聚合分析
ElasticSearch除搜索意外提供的针对ES数据进行统计分析的功能通过聚合我们会得到一个数据的概览是分析和总结全套的数据而不是寻找单独的文档高性能只要一条语句就可以得到分析结果
聚合分类
Bucket Aggregation 一些满足特定条件的文档的集合
Terms Aggregation这种分桶策略是按照词条term来分桶类似于SQL中的group by语法。如果是text类型则按照分词后的结果分桶。例如可以按照省份或用户名等字段进行分桶。
GET xby_index_users/_search
{size: 0,aggs: {birth_place_bucket: {terms: {field: birth_place}}}
}Range Aggregation通过指定数值的范围来设定分桶规则。可以定义多个范围文档会根据这些范围被分配到不同的桶中。
GET xby_index_users/_search
{size: 0,aggs: {age_bucket: {range: {field: age,ranges: [{ from: 0, to: 30 },{ from: 30, to: 60 },{ from: 60, to: 90 }]}}}
}Histogram Aggregation直方图分桶以固定间隔的策略来分割数据。可以指定间隔大小interval和数据范围extended_bounds。
GET xby_index_users/_search
{size: 0,aggs: {age_bucket: {histogram: {field: age,interval: 30}}}
}Date Histogram Aggregation日期直方图分桶根据日期阶梯分组例如给定阶梯为周会自动每周分为一组。
GET xby_index_users/_search
{size: 0,aggs: {birthday_bucket: {date_histogram: {field: birthday,calendar_interval: year}}}
}Metric Aggregation 一些数学运算可以对文档字段进行统计分析
仅输出一个值的运算 min/max/sum/avg/cardinality
GET xby_index_users/_search
{size: 0,aggs: {age_avg: {avg: {field: age}},age_max: {max: {field: age}},age_min: {min: {field: age}},age_sum: {sum: {field: age}},age_cardinality: {cardinality: {field: age}}}
}输出多个值的运算 stats/percenties/percentile_ranks
GET xby_index_users/_search
{size: 0,aggs: {age_stats: {stats: {field: age}},age_percentiles: {percentiles: {field: age}}}
}Pipeline Aggregation 对其他运算结果的二次运算
GET xby_index_users/_search
{size: 0,aggs: {sales_per_month: {date_histogram: {field: date,interval: month},aggs: {sales: {sum: {field: price}}}},avg_monthly_sales: {avg_bucket: {buckets_path: sales_per_monthsales}}}
}