Я обновляю документ в Elasticsearch с использованием Java API и время от времени он терпит неудачу без каких-либо указаний (возможно, 1 из 10). Единственный способ узнать, было ли обновление успешным, - прочитать документ для проверки и проверить, обновлено ли оно.Как определить, не удалось ли обновить документ в Elasticsearch
IndexResponse
имеет метод, называемый isCreated
, и, как указывает его имя, он возвращает только true, если была успешная вставка. Этот метод вернет false при обновлении, независимо от того, что он успешный или неудачный.
Вот мой код, чтобы обновить документ:
IndexRequest indexRequest = new IndexRequest(index_name, type_name, doc_id)
.source(json);
UpdateRequest updateRequest = new UpdateRequest(index_name, type_name, doc_id)
.doc(json)
.upsert(indexRequest);
UpdateResponse response = es_client.update(updateRequest).actionGet();
Прежде чем я могу исправить неудачное обновление, мне нужно, чтобы обнаружить, если запрос был успешным или нет. Но как?
P.S. UpdateResponse
наследует от IndexResponse
и не имеет дополнительного способа указывать статус обновления или, по крайней мере, насколько мне известно.
I _think_ вам нужно получить документ и проверить его после обновления. –