elasticsearch ElasticSearch 6.6.0聚合平均值,脚本不起作用
我尝试在群集上运行以下命令:elasticsearch ElasticSearch 6.6.0聚合平均值,脚本不起作用,elasticsearch,kibana,elasticsearch,Kibana,我尝试在群集上运行以下命令: GET _search { "aggs": { "buckets": { "terms": { "field": "main_feature_id.keyword", "size": 10 }, "aggs": { "average_dwell": { "avg": { "field": "dwell.dwell_ms",
GET _search
{
"aggs": {
"buckets": {
"terms": {
"field": "main_feature_id.keyword",
"size": 10
},
"aggs": {
"average_dwell": {
"avg": {
"field": "dwell.dwell_ms",
"script": {
"lang": "painless",
"source": "long x = Math.round(_value*100)/100000; return x;"
}
}
}
}
}
}
}
但不管我怎么努力,我都无法使结果接近
结果如下所示:
"doc_count" : 26032,
"average_dwell" : {
"value" : 44.87277178006528
}
有人能告诉我我做错了什么吗?我确信这是显而易见的
谢谢大家!
\u value
脚本将脚本应用于文档的每个值,然后计算修改值的平均值。您似乎实现了将精度降低到小数点后两位。这可以通过利用获得预期值来实现
{
"aggs": {
"buckets": {
"terms": {
"field": "main_feature_id.keyword",
"size": 10
},
"aggs": {
"average_dwell": {
"avg": {
"field": "dwell.dwell_ms"
}
},
"rounded_avg": {
"bucket_script": {
"buckets_path": {
"curr_avg": "average_dwell"
},
"script": "Math.round(params.curr_avg * 100)/100.0;"
}
}
}
}
}
}
没有脚本时得到的值是多少?期望值是多少?@NishantSaini您好,实际结果的一段如上图所示,我期望值是44.87如果您将脚本更改为
“return(返回)value”
,得到的值是多少?@NishantSaini“value”:448772.77178006528,我只想把它四舍五入到较低的精度。好的,我现在想更清楚一点,你想把它四舍五入到44.87或448772.77?