原英文版地址: https://www.elastic.co/guide/en/elasticsearch/reference/7.7/search-aggregations-metrics-stats-aggregation.html, 原文档版权归 www.elastic.co 所有
本地英文版地址: ../en/search-aggregations-metrics-stats-aggregation.html
本地英文版地址: ../en/search-aggregations-metrics-stats-aggregation.html
重要: 此版本不会发布额外的bug修复或文档更新。最新信息请参考 当前版本文档。
一种multi-value(多值)度量聚合,计算从聚合文档中提取的数值的统计(stats)数据。
值可以从文档的给定的 numeric 字段中提取,也可以由脚本生成。
返回的统计数据包括:min、max、sum、count 和 avg。
假设数据由代表学生考试成绩(0到100之间)的文档组成:
POST /exams/_search?size=0
{
"aggs" : {
"grades_stats" : { "stats" : { "field" : "grade" } }
}
}
上述聚合计算所有文档的分数统计信息。
聚合类型是 stats ,field 设置定义了用于统计计算的文档的 numeric 字段。
上面的查询将返回以下内容:
{
...
"aggregations": {
"grades_stats": {
"count": 2,
"min": 50.0,
"max": 100.0,
"avg": 75.0,
"sum": 150.0
}
}
}
聚合的名称(上面的grades_stats)也用作键,通过它可以从返回的响应中检索聚合结果。
基于脚本计算成绩统计数据:
POST /exams/_search?size=0
{
"aggs" : {
"grades_stats" : {
"stats" : {
"script" : {
"lang": "painless",
"source": "doc['grade'].value"
}
}
}
}
}
这将把参数 script 解释为一个 inline(内联) 脚本,使用painless(无痛) 脚本语言,没有脚本参数。
要使用一个已存储的脚本,请使用以下语法:
POST /exams/_search?size=0
{
"aggs" : {
"grades_stats" : {
"stats" : {
"script" : {
"id": "my_script",
"params" : {
"field" : "grade"
}
}
}
}
}
}