我必须将我们的 ES 从 6.2(TCP 客户端)升级到 7.4.2(REST API)
而且我有一点问题UpdateByQueryRequestBuilder
,看起来需要更改为UpdateByQueryRequest
(doc)。旧代码如下所示:
BoolQueryBuilder dateQueryBuilder = ...
QueryBuilder a = ...
BoolQueryBuilder b = ...
UpdateByQueryRequestBuilder updateByQuery = new UpdateByQueryRequestBuilder(tcpClient, UpdateByQueryAction.INSTANCE);
updateByQuery.filter(dateQueryBuilder.filter(a).filter(b)).script(updateScript);
正如我所写,我理解UpdateByQueryRequestBuilder
(使用最旧的客户端)应该被替换,UpdateByQueryRequest
但是这个新的 API 没有filter
方法(只是setQuery
将替换当前的查询在链式案例中......)
UpdateByQueryRequest updateRequest = new UpdateByQueryRequest();
updateRequest.setQuery(dateQueryBuilder)
// .setQuery(a) - will replace dateQueryBuilder instead of chain new filter...
// .filter - not exist in the new API
那么问题来了,我应该如何用最新的 ES REST API 替换这段代码(或链接查询)?