我試圖通過Java API使用類似於here概述的技術來更新Elasticsearch中的嵌套對象。問題是如何將json傳遞到腳本中。如果我只是盲目地將json連接到腳本字符串,建議here,Groovy不會編譯。如果直接將它作爲參數傳遞,它只會被解析爲一個字符串。如果我嘗試使用JsonSlurper,如:如何通過Java API更新Elasticsearch 2.2腳本中的嵌套對象
String script = "ctx._source.pete = new groovy.json.JsonSlurper().parseText(json)";
Map<String, Object> params = ImmutableMap.of("json", json);
return new Script(script, ScriptService.ScriptType.INLINE, null, params);
我得到一個編譯例外:無法解析類groovy.json.JsonSlurper
與JsonSlurper方法的另一個問題似乎是,在Elasticsearch團隊它基本上是disabled它在2.2中。
有誰知道如何通過Java API正確傳遞json嗎?
,你可以嘗試添加'進口groovy.json.JsonSlurper;'在腳本的開始?只是爲了看看編譯錯誤是否出來? – Val
@VAL不幸的是,這並沒有幫助,同樣的錯誤。 – PeteyPabPro
值得一試,儘管這很明顯,爲什麼這個被禁用,爲什麼ES的人堅持這個決定。 – Val