ElasticSearch 5.4.1 Java API:正确更新,但updateResponse.getResult()为空,我检查了对象,响应得到了很好的更新,但getResponse()=空,

换句话说,结果很好,但是我可以访问。这是我的代码:

UpdateResponse response = esClient.prepareUpdate(INDEX, TYPE, id).setDoc(jsonPoste).get();

java - ElasticSearch 5.4.1 Java API:updateResponse.getResult()中的错误为null,-LMLPHP

最佳答案

它有些旧,但是ES“论坛”中有this文章。

显然,如果要获得结果,则必须在请求中指定。否则,updateRequest只会更新并返回“UPDATED”(或其他代码)作为结果。乍一看,这是有一定道理的,因为为什么要从硬盘驱动器加载不必要/不需要的数据。

无论如何,在请求中添加.setFetchSource(true)应该可以解决问题:

UpdateResponse response = esClient.prepareUpdate(INDEX, TYPE, id)
                          .setDoc(jsonPoste).setFetchSource(true).get();

08-18 15:57