1
Ich möchte scripted_metric innerhalb einer Aggregation verwenden. Ich habe einige Parameterwerte in meinem Skript, die ich diese pro Abfrage einstellen möchte, ist es möglich, diese Abfrage überhaupt zu erstellen? unten ein Beispiel für das, was ich sucheparametrisch erstellen scripted_metric in elasticsearch
"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;"
}
}
}
param1 und param2 sind meine Parameterwerte, wie diese Aggregation für meinen Zweck ändern?
tnx :)
ich dies selbst versuchen, aber wenn add „params“ -Attribut, und führen Sie die Abfrage ich diesen Fehler habe: " Grund ": { " Typ ":" script_exception ", " Grund ":" Fehler beim Ausführen des Inline-Skripts [_agg ['maximum'] = []] mit lang [groovy] ", " creative_by ": { " type ":" missing_property_exception ", " Grund ":" Keine solche Eigenschaft: _agg für Klasse: 61d7231114f6331ff30ad062a76adc50bd85e778 " } } –
ohne" params "-Attribut, es funktioniert gut und richtig –
Welche Version von ES haben Sie? Haben Sie [dynamische Skripts aktivieren] (https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-scripting.html#enable-dynamic-scripting) in Aggregationen aktiviert? – Val