Я запускаю обновление по запросу с помощью java rest client: https://www.elastic.co/guide/en/elasticsearch/client/java-rest/master/java-rest-high-document-update-by-query.html
Это мой код: (извлекла только соответствующую часть и обновила некоторые поля в безболезненный сценарий)
UpdateByQueryRequest queryRequest = new UpdateByQueryRequest(indexName);
Script script = new Script(ScriptType.INLINE, "painless", "if (ctx._source.someKey == someVal) {ctx._source.someKey = someOtherVal;}",Collections.emptyMap());
queryRequest.setScript(script);
BulkByScrollResponse bulkResponse = aesClient.updateByQuery(queryRequest, RequestOptions.DEFAULT);
Приведенный выше код работает нормально, соответствующие документы обновляются. Однако всякий раз, когда я выполняю следующее:
long updatedDocs = bulkResponse.getUpdated();
Значение, хранящееся в updatedDocs
, не отражает фактического количества обновляемых документов. В нем хранится количество документов, которые оно обработало.
Согласно документации , должно возвращаться количество обновленных документов.
Пожалуйста, поправьте меня, если я ошибаюсь. Есть ли исправление для этого?