我正在使用Java API進行elasticsearch上的CRUD操作。使用Java API更新ElasticSearch索引中的嵌套字段
我有一個類型嵌套的字段,我想更新此字段。
這裏是我的類型映射:
"enduser": {
"properties": {
"location": {
"type": "nested",
"properties":{
"point":{"type":"geo_point"}
}
}
}
}
當然我的最終用戶類型將有其他的參數。
現在我想在本文中我嵌套字段添加:
"location":{
"name": "London",
"point": "44.5, 5.2"
}
我如何更新嵌套的文檔中搜索在文檔,但我找不到任何東西。例如,我有一個字符串中的前一個JSON obect(讓我們調用這個字符串json)。我試着下面的代碼,但似乎不工作:
params.put("location", json);
client.prepareUpdate(index, ElasticSearchConstants.TYPE_END_USER,id).setScript("ctx._source.location = location").setScriptParams(params).execute().actionGet();
我已得到elasticsearch解析錯誤。任何人都知道我做錯了什麼?
嘿。事實上,這個解決方案是可能的,但是我收到的文檔總是不同的,所以我不能硬編碼它,並且我用setDoc嘗試了很多方法,但沒有一個能正常工作。 最後,上面的腳本用法是我的問題 – razafinr
根據你的例子的解決方案,但你有json - 它只是json.toString()。getBytes()而不是硬編碼的值...這可以避免調用一個腳本,使其整體更快。 – Alcanzar