我在elasticsearch有点问题。
我想要两个聚合值的除法值。
此查询正在运行。
{
"query": {
"bool": {
"adjust_pure_negative": true,
"boost": 1.0
}
},
"aggregations": {
"sumPageview": {
"sum": {
"field": "pageview",
"missing": 0
}
},
"sumVisit": {
"sum": {
"field": "visit",
"missing": 0
}
}
}
但这个查询不起作用。
{
"query": {
"bool": {
"adjust_pure_negative": true,
"boost": 1.0
}
},
"aggregations": {
"sumPageview": {
"sum": {
"field": "pageview",
"missing": 0
}
},
"sumVisit": {
"sum": {
"field": "visit",
"missing": 0
}
},
"totalPageviewPerVisit": {
"bucket_script": {
"buckets_path": {
"sumPageview": "sumPageview",
"sumVisit": "sumVisit"
},
"script": {
"source": "params.sumPageview / params.sumVisit",
"lang": "painless"
},
"gap_policy": "skip"
}
}
}
我想这就是为什么和值不在桶里。
这个理由对吧?请帮帮我。
1条答案
按热度按时间2exbekwf1#
sum aggregation是一个单值度量聚合,它汇总从聚合文档中提取的数值。
bucket script aggregation是一种父管道聚合,它执行一个脚本,该脚本可以对父多bucket聚合中的指定度量执行逐bucket计算。
因为sum聚合不创建任何bucket,所以不能对其使用bucket脚本聚合。
添加索引数据、搜索查询和搜索结果的工作示例
索引数据:
搜索查询:
搜索结果: