为什么不插入更新索引而不增加弹性索引的存储大小?

问题描述 投票:1回答:1

我通过logstash从oracle写入索引。

输出为:

   elasticsearch {
                index => "****"
                document_type => "****"
                document_id => "%{my_computed_id}"
                hosts => "localhost:9200"
 }

但是当我检查索引管理时,文档计数是相同的,但是存储空间增加了。

我想更新我的文档,为什么要增加存储空间?

提前感谢

elasticsearch logstash logstash-configuration
1个回答
2
投票

发生这种情况是因为elasticsearch如何更新文档。

更新文档时,elasticsearch不会简单地覆盖文档。将旧文档标记为已删除,并使用当前文档中存在的字段创建新文档。

搜索时,标记为已删除的文档不包括在搜索中。

此外,您还需要了解如何在Lucene中将数据存储在后端。在后端,elasticsearch的一个碎片是lucene的一种索引。每个lucene索引中都有多个段。

当段大小变大时,多个段合并以形成一个新的大段。

当段合并形成新段时,标记为已删除的文档不包括在新段中。

所以您的数据大小将暂时增加,但最终会减小。

这里是链接:https://www.elastic.co/blog/lucenes-handling-of-deleted-documents

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