ElasticSearch 5.4.1 Java API:正确更新,但updateResponse.getResult()为空,我检查了对象,响应得到了很好的更新,但getResponse()=空,
换句话说,结果很好,但是我可以访问。这是我的代码:
UpdateResponse response = esClient.prepareUpdate(INDEX, TYPE, id).setDoc(jsonPoste).get();
最佳答案
它有些旧,但是ES“论坛”中有this文章。
显然,如果要获得结果,则必须在请求中指定。否则,updateRequest只会更新并返回“UPDATED”(或其他代码)作为结果。乍一看,这是有一定道理的,因为为什么要从硬盘驱动器加载不必要/不需要的数据。
无论如何,在请求中添加.setFetchSource(true)
应该可以解决问题:
UpdateResponse response = esClient.prepareUpdate(INDEX, TYPE, id)
.setDoc(jsonPoste).setFetchSource(true).get();