1
我想在聚合中使用scripted_metric。我在我的脚本中有一些参数值,我希望为每个查询设置这些参数值,可以根据需要创建此查询吗? 下面就是我在寻找在elasticsearch中创建参数化scripted_metric
"aggs": {
"testAgg": {
"scripted_metric": {
"init_script": "_agg['maximum'] = []",
"map_script": "max = 0; for(tv in _source.tvs){ if(tv.att1>= param1 && tv.attr2 <= param2 && tv.att3 > max){max = tv.att3; }}; _agg.maximum.add(max);",
"combine_script": "sum = 0; for (m in _agg.maximum) { sum += m }; return sum;",
"reduce_script": "sum = 0; for (a in _aggs) { sum += a }; return sum;"
}
}
}
参数1和参数是我的参数值,如何改变这种聚集我的目的一个例子吗?
TNX :)
我试试这个自己做,但是当添加“PARAMS”属性,并运行我得到这个错误的查询:“原因“:{ ”type“:”script_exception“, ”reason“:”无法使用lang [groovy]运行内嵌脚本[_agg ['maximum'] = []]“, ”caused_by“:{ ”键入“:”missing_property_exception“, ”reason“:”没有这样的属性:_agg for class: 61d7231114f6331ff30ad062a76adc50bd85e778“ } } –
没有”参数“属性它的工作正常和正确 –
你有哪个版本的ES?聚合中是否有[启用动态脚本](https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-scripting.html#enable-dynamic-scripting)? – Val