Hi,
We can't manage to pass parameters from Java to Painless runtime (Elasticsearch 6.1.2 - client and server).
The error we got is:
{"error":{"root_cause":[{"type":"script_exception","reason":"runtime error","to_string":"null","script_stack":["Debug.explain(params.get(\"enabled\"));","lang":"painless","caused_by":{"type":"painless_explain_error","reason":null}}}]},"status":500}
Here is below a code snippet of our own. Can anyone spot an error?
final Map<String, Object> enabled = new HashMap<>();
enabled.put("enabled", true);
final ScriptedMetricAggregationBuilder builder = AggregationBuilders.scriptedMetric("metricName");
builder.mapScript(new Script(ScriptType.INLINE, "painless", "Debug.explain(params.get("enabled"));", enabled));
final SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder().query(myQuery)
.size(0)
.timeout(TimeValue.timeValueSeconds(1))
.aggregation(builder);
final SearchRequest searchRequest = new SearchRequest().indices("myIndex")
.types("myIndexType")
.source(searchSourceBuilder);
final SearchResponse response = restClientFactory.getRestHighLevelClient().search(searchRequest);
final ScriptedMetric agg = response.getAggregations().get("metricName");
return agg.aggregation();
Thanks,
Christophe