ES6.0.0官方参考指南翻译~指标聚合~Stats Aggregation

Stats Aggregation

这是一种多值指标聚合,用于计算聚合文档提取值的统计数据。这些值既可通过文档的数字字段提取,也可通过脚本来生成。

该聚合返回的统计信息包括: min,max,sum,count,avg.

假设文档由学生的考试成绩(0~100)所组成:

POST /exams/_search?size=0

{

"aggs" : {

"grades_stats" : { "stats" : { "field" : "grade" } }

}

}

上面的聚合会计算所有文档的成绩统计数据。聚合类型是stats,聚合字段是grade.

上述聚合会返回如下结果:

{

...

"aggregations": {

"grades_stats": {

"count": 2,

"min": 50.0,

"max": 100.0,

"avg": 75.0,

"sum": 150.0

}

}

}

聚合名称(即上面的grades_stats)可作为检索聚合结果的key.

Script

也可基于脚本来统计成绩数据:

POST /exams/_search?size=0

{

"aggs" : {

"grades_stats" : {

"stats" : {

"script" : {

"lang": "painless",

"source": "doc['grade'].value"

}

}

}

}

}

这会使用painless脚本语言来将script参数解析为内联脚本(不带脚本参数).

可通过如下语法来使用存储脚本:

POST /exams/_search?size=0

{

"aggs" : {

"grades_stats" : {

"stats" : {

"script" : {

"id": "my_script",

"params" : {

"field" : "grade"

}

}

}

}

}

}

Value Script

事实证明,考试难度高于学生水平,需要进行等级校正。

我们可以使用值脚本来获取新的统计信息:

POST /exams/_search?size=0

{

"aggs" : {

"grades_stats" : {

"stats" : {

"field" : "grade",

"script" : {

"lang": "painless",

"source": "_value * params.correction",

"params" : {

"correction" : 1.2

}

}

}

}

}

}

Missing value

missing 参数用于定义如何处理文档中的缺失值.

默认,它会忽略缺失值,但也可以将其视为有值字段.

POST /exams/_search?size=0

{

"aggs" : {

"grades_stats" : {

"stats" : {

"field" : "grade",

"missing": 0 #1

}

}

}

}

1.对于无值的grade字段,其所属文档会与值为0的文档放在同一个桶内。

全部指标聚合,请参考

单值指标聚合

多值指标聚合

地理位置相关聚合

可执行Map-Reduce计算的聚合


分享到:


相關文章: