Использование ES UpdateByQueryRequestBuilder с клиентом Rest High Level - PullRequest
0 голосов
/ 16 января 2019

В Elasticsearch v5.5 мы использовали Transport Client при определении UpdateByQueryRequestBuilder и все работало нормально:

UpdateByQyeryRequestBuilder updateByQuery = UpdateByQueryAction.INSTANCE
                                                  .newRequestBuilder(transportClient);

Поскольку мы выполняем обновление для использования RestHighLevelClient, вышеприведенный компоновщик больше не работает, и это приводит к ошибке: «Метод newRequestBuilder (ElasticsearchClient) в типе UpdateByQueryAction не применим для аргументов (RestHighLevelClient)». Кто-нибудь знает, могу ли я просто разыграть его, как показано ниже:

UpdateByQyeryRequestBuilder updateByQuery = UpdateByQueryAction.INSTANCE
                                                      .newRequestBuilder((ElasticsearchClient) restHighLevelClient); 

или должен быть какой-то другой способ сделать это? Спасибо

1 Ответ

0 голосов
/ 16 января 2019

С документация . Похоже, вы должны подготовить запрос напрямую:

UpdateByQueryRequest request = new UpdateByQueryRequest("source1", "source2");
request.set...

и позже выполните запрос:

BulkByScrollResponse bulkResponse = client.updateByQuery(request, RequestOptions.DEFAULT);

Я думаю, UpdateByQyeryRequestBuilder - это класс, специфичный только для TransportClient.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...