Elasticsearch Avg Aggregation 平均聚合
平均聚合的聚合类型是 avg,一个单值度量聚合,计算从聚合文档中提取的数值的平均值。这些值可以从文档中的特定数字字段提取,也可以由提供的脚本生成。
从文档中的特定数字字段提取
GET company_es/_search
{
"aggs": {
"avg_capital_number": {//这个名字是自己随便取的
"avg": {//聚合类型是avg(平均数)
"field": "capitalNumber"//单值聚合
}
}
}
}
------------------------------返回文档如下---------------------------------------
...
"aggregations" : {
"avg_capital_number" : {//这个名字是搜索的时候定义的
"value" : 454.9986790682733
}
}
缺少参数定义了应该如何处理缺少值的文档。默认情况下,它们将被忽略,但也可以将它们视为具有值
GET company_es/_search
{
"aggs": {
"avg_capital_number": {
"avg": {
"field": "capitalNumber"
"missing": 10//缺少值处理
}
}
}
}
基于脚本计算平均分数
GET company_es/_search
{
"aggs": {
"avg_capital_number": {
"avg": {
"script": {
"source": "doc.capitalNumber.value"
}
}
}
}
}
------------------------------返回文档如下---------------------------------------
...
"aggregations" : {
"avg_capital_number" : {
"value" : 454.9986790682733
}
}
这将把脚本参数解释为内联脚本,使用简单的脚本语言,没有脚本参数。要使用存储的脚本,请使用以下语法
GET company_es/_search
{
"aggs": {
"avg_capital_number": {
"avg": {
"script": {
"id":"my_script",//存储的脚本id,
"params":{
"field": "capitalNumber"
}
}
}
}
}
}
对分数进行修正,我们可以使用值脚本来得到新的平均值
GET company_es/_search
{
"aggs": {
"avg_capital_number": {
"avg": {
"field": "capitalNumber",
"script": {
"lang": "painless",
"source": "_value * params.correction",
"params":{
"correction" : 1.2
}
}
}
}
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论