elasticsearch 为什么弹性索引存储大小增加而更新的索引不插入?,elasticsearch,logstash,logstash-configuration,elasticsearch,Logstash,Logstash Configuration" /> elasticsearch 为什么弹性索引存储大小增加而更新的索引不插入?,elasticsearch,logstash,logstash-configuration,elasticsearch,Logstash,Logstash Configuration" />

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

elasticsearch 为什么弹性索引存储大小增加而更新的索引不插入?,elasticsearch,logstash,logstash-configuration,elasticsearch,Logstash,Logstash Configuration,我通过logstash从oracle向索引写入数据 输出为: elasticsearch { index => "****" document_type => "****" document_id => "%{my_computed_id}" hosts => "localhost:9200" } 但是当我检查索引管理时,文档数是相同的

我通过logstash从oracle向索引写入数据

输出为:

   elasticsearch {
                index => "****"
                document_type => "****"
                document_id => "%{my_computed_id}"
                hosts => "localhost:9200"
 }
但是当我检查索引管理时,文档数是相同的,但是存储大小增加了

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


提前感谢

这是因为elasticsearch是如何更新文档的

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

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

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

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

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

因此,您的数据大小将暂时增加,但最终会下降


这里有一个链接:

这是因为elasticsearch是如何更新文档的

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

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

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

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

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

因此,您的数据大小将暂时增加,但最终会下降


这里有一个链接:

这个答案应该会有帮助:我不明白答案,如果文档数量没有增加,但存储量增加,这意味着你在用相同的ID一次又一次地发送相同的文档。较旧的版本会被较新的版本覆盖,删除的文档数量也会增加,这会增加卷。同时检查已删除文档的数量,你应该会看到它也在增加。我想已经删除了,我想被删除。这个答案应该会有帮助:我不明白答案,如果文档数量没有增加,但存储空间增加了,这意味着你在一次又一次地发送具有相同ID的相同文档。较旧的版本会被较新的版本覆盖,删除的文档数量也会增加,这会增加卷。同时检查已删除文档的数量,您应该会看到它也在增加。我希望已删除的文档会被删除。