gpt4 book ai didi

java - 如何检测 Elasticsearch 中的文档更新是否失败

转载 作者:行者123 更新时间:2023-11-30 08:34:16 25 4
gpt4 key购买 nike

我正在使用 Java API 更新 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();

在修复失败的更新之前,我需要检测请求是否成功。但是如何呢?

附言UpdateResponse 继承自 IndexResponse 并且没有额外的方法来指示更新的状态,至少据我所知是这样。

最佳答案

从 UpdateResponse 中,您可以检索一个 ShardInfo 实例,其中包含失败成功 分片操作的数量。如果 failed: 0,则操作成功的可能性很高。

int failed = response.getShardInfo().getFailed()

关于java - 如何检测 Elasticsearch 中的文档更新是否失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38928991/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com