在Elasticsearch v5.5中,我们在定义时使用了Transport Client UpdateByQueryRequestBuilder,它工作正常:
UpdateByQyeryRequestBuilder updateByQuery = UpdateByQueryAction.INSTANCE
.newRequestBuilder(transportClient);
由于我们要升级为使用RestHighLevelClient,因此上述生成器不再起作用,并且具有以下错误:“ UpdateByQueryAction类型的newRequestBuilder(ElasticsearchClient)方法不适用于参数(RestHighLevelClient)”。 有谁知道我是否可以像下面这样简单地投射它:
UpdateByQyeryRequestBuilder updateByQuery = UpdateByQueryAction.INSTANCE
.newRequestBuilder((ElasticsearchClient) restHighLevelClient);
还是应该有其他方法可以做到?谢谢
答案 0 :(得分:0)
来自the documentation。看来您应该直接准备请求:
UpdateByQueryRequest request = new UpdateByQueryRequest("source1", "source2");
request.set...
然后执行请求:
BulkByScrollResponse bulkResponse = client.updateByQuery(request, RequestOptions.DEFAULT);
我认为UpdateByQyeryRequestBuilder
仅是特定于TransportClient的类。