原英文版地址: 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" } } } } } }