如何解决Elasticsearch Exception中的version_conflict_engine_excepti



我使用的是Elasticsearch 7.9.0

我非常频繁地更新文档。所以我得到了下面的异常

Elasticsearch exception [type=version_conflict_engine_exception, reason=[111]:版本冲突,required seqNo [4348], primary term[2]。当前文档有seqNo[4427]和primary term [2]]

那么我在每次更新之间设置了1秒的延迟。(我不能给更多)

但是问题仍然存在。我们如何解决这个问题?请帮帮我。谢谢。

这个问题是因为elasticsearch中文档的版本控制而发生的。此特性的存在是为了防止同时运行的任务对相同文档进行并发更改。当您尝试更新已被其他任务更新的文档时,可能会遇到此问题。

如果你想通过你的更新来跟踪文档的更新过程,你可能想通过elastic使用任务管理API: https://www.elastic.co/guide/en/elasticsearch/reference/current/tasks.html

您可能还想检查索引API的文档,因为它进一步解释:https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-index_.html

我在OpenSearch配置中收到了几乎相同的错误,但这不是由于过于频繁的更新,如OP的情况。

在我的例子中,我无意中试图更新域中现有的Role。我的请求是试图创建一个"新的"Role,而它已经存在。当我尝试这样做时,我收到了错误。

我的决议是创建一个Role与一个全新的名称,然后更新它。

相关内容

最新更新