我的理解是 Elasticsearch 将存储文档的最新副本并仅更新版本字段号?但是我正在处理几千个文档,并且需要重复索引它们而不更改文档中的任何数据。我的想法是索引大小将保持不变,但事实并非如此......索引大小似乎增加了。
这让我有点困惑,所以我只是想澄清一下 elasticsearch 中版本控制的内部机制。
我的理解是 Elasticsearch 将存储文档的最新副本并仅更新版本字段号?但是我正在处理几千个文档,并且需要重复索引它们而不更改文档中的任何数据。我的想法是索引大小将保持不变,但事实并非如此......索引大小似乎增加了。
这让我有点困惑,所以我只是想澄清一下 elasticsearch 中版本控制的内部机制。
更新是幕后的删除 + 插入 Lucene 操作。但是你应该知道,Lucene 并没有真正删除文档,而是将其标记为已删除。
要删除已删除的文档,您必须优化您的 Lucene 段。
$ curl -XPOST 'http://localhost:9200/twitter/_optimize?only_expunge_deletes=true'
请参阅优化 API。也看看合并选项。合并片段有时会在幕后发生。
有关 Elasticsearch 中版本控制支持的一般概述,请参阅Elasticsearch 版本控制支持。