在 java 客户端中使用 UpdateByQueryRequest
Using UpdateByQueryRequest in java client
我正在尝试在 java 中使用 UpdateByQueryRequest
。问题是,我在 eclipse
中得到了不同的语法建议。我正在使用 java RestHighLevelClient
。这是一个例子
import org.elasticsearch.index.reindex.UpdateByQueryRequest;
SearchRequest searchRequest = new SearchRequest(index).types(type);
我收到了 2 条建议。第一个是 without SearchRequest
object 第二个是 with SearchRequest
object
UpdateByQueryRequest updateByQueryRequest = new UpdateByQueryRequest();
UpdateByQueryRequest updateByQueryRequest = new UpdateByQueryRequest(searchRequest);
我无法像在 ES 的其他地方一样使用 setQuery
。另一方面 setScript
有效
updateByQueryRequest.setQuery()
是否有其他语法可以做到这一点?
您也可以使用 setQuery() 的内部实现:
public UpdateByQueryRequest setQuery(QueryBuilder query) {
if (query != null) {
this.getSearchRequest().source().query(query);
}
return this;
}
您的最终代码将如下所示:
UpdateByQueryRequest updateByQueryRequest = new UpdateByQueryRequest(searchRequest);
if (query != null) {
updateByQueryRequest.getSearchRequest().source().query(query);
}
如果您无法访问 updateByQueryRequest.getSearchRequest(),可能是库或您的 IDE 有问题,您可以尝试反编译 class 并检查是否方法是有的(ElasticSearch是开源的,不会有法律问题),也建议大家上传库或者重新下载看看问题是否还存在。
我正在尝试在 java 中使用 UpdateByQueryRequest
。问题是,我在 eclipse
中得到了不同的语法建议。我正在使用 java RestHighLevelClient
。这是一个例子
import org.elasticsearch.index.reindex.UpdateByQueryRequest;
SearchRequest searchRequest = new SearchRequest(index).types(type);
我收到了 2 条建议。第一个是 without SearchRequest
object 第二个是 with SearchRequest
object
UpdateByQueryRequest updateByQueryRequest = new UpdateByQueryRequest();
UpdateByQueryRequest updateByQueryRequest = new UpdateByQueryRequest(searchRequest);
我无法像在 ES 的其他地方一样使用 setQuery
。另一方面 setScript
有效
updateByQueryRequest.setQuery()
是否有其他语法可以做到这一点?
您也可以使用 setQuery() 的内部实现:
public UpdateByQueryRequest setQuery(QueryBuilder query) {
if (query != null) {
this.getSearchRequest().source().query(query);
}
return this;
}
您的最终代码将如下所示:
UpdateByQueryRequest updateByQueryRequest = new UpdateByQueryRequest(searchRequest);
if (query != null) {
updateByQueryRequest.getSearchRequest().source().query(query);
}
如果您无法访问 updateByQueryRequest.getSearchRequest(),可能是库或您的 IDE 有问题,您可以尝试反编译 class 并检查是否方法是有的(ElasticSearch是开源的,不会有法律问题),也建议大家上传库或者重新下载看看问题是否还存在。