es聚合 aggs
聚合的分类
1. matric聚合 :在一组文档中计算指标的聚合,如sum,min,max,avg
2.bucket聚合 : 构建存储桶的一系列聚合。(分组,筛选)
3.pipeline聚合 :聚合其他聚合的输出 及 其关联指标的聚合
4.matrix聚合 :在多字段上进行一系列的聚合,并根据从请求的文档字段中提取的值生成矩阵结果。
1. matric聚合
大概格式(还有用脚本计算的版本,先不记录)
POST student/_search #用get也可以 { "size": 0, #表示只显示聚合的值,不显示具体数据 "aggs": { "name1": { "percentile_ranks": { #关键字 "field": "grade", #聚合的字段 "values": [ #不同关键字,可用的参数不一致(可省略) 89, 90 ] } } } }
关键字:
avg 平均值
weighted_avg 加权平均值
cardinality (同distinct功能) 计数,精确计算-使用参数precision_threshold 值越大,占用内存越大,最高是40000,超过这个值也按这个值计算
对于字符串且基数高,存储的字段值转化为hash值会更快
min 最小值
max 最大值
sum 求和
value_count 计数(如果是缺失值将会被忽略)
stats 多个度量值的聚合(sum,count,avg,min,max 都会显示)
extended_stats 多个度量值的聚合(sum,count,avg,min,max,sum_of_squares 平方, variance 方差, std_deviation 标准差, std_deviation_bounds平均值加/减两个标准差的区间)
percentiles 从聚合文档的数值上,提取一个或多个百分位数(1%,5%,25%,50%,75%,95%,99% 分布对应的值)如50%是小于一个值的。
percentiles_ranks 与percentiles相反, 指定小于等于的指定值的文档,统计占比
2.bucket聚合
terms 分桶
top_hits 桶分组后,取最顶端的值