Elasticsearch _版本字段

问题描述 投票:0回答:2

文档表明

_version
字段针对每个文档,并且每次更新文档时都会增加 1。在我的 ES 中查询数据后,我发现
_version
字段对于整个索引来说是全局的。 (看起来每个更新都被跟踪,所以我的文档的版本值有数千,单次更新后可以增加超过一,通常是一些随机数,我猜这与集群中的全局更新相关)

如何更改?

我的ES版本是7.14.0

编辑1: 我想我需要进一步澄清:

_search
之后我可以看到我的文档确实有类似
"_version": 410084,

也许是因为我使用kafka-connect和elasticsearch接收器来放置来自kafka的文档?虽然我没有看到这个接收器有任何配置来自行管理版本

elasticsearch apache-kafka-connect
2个回答
2
投票

_version
字段是每个文档,我认为你对
seq_no
感到困惑,它表示分片中的更新数量,是分片中更新数量的计数器,而且它不可写,即仅限Elasticsearch处理对
seq_no
字段的更新。

由于

_version
字段更新可以是外部的,即您也可以更新它的值,并且 如果您看到它的值增加超过 1,则意味着 Elasticsearch 没有更新它,并且您的应用程序中有人正在更新它,但在任何情况下它都与集群中的全局更新无关。


0
投票

@再见@阿米特 我在 KafkaConnect 中通过 ElasticsearchSinkConnector 插入/更新文档时遇到了与 @ByeBye 相同的问题。

虽然文档没有更改那么多 _version 的数量,但 _version 太高了(例如 4123901)。

© www.soinside.com 2019 - 2024. All rights reserved.