我通过 logstash 从 oracle 写入索引。
输出是:
elasticsearch {
index => "****"
document_type => "****"
document_id => "%{my_computed_id}"
hosts => "localhost:9200"
}
但是当我检查索引管理时,Docs Count 是相同的,但存储大小会增加。
我想更新我的文档,为什么存储空间会增加?
提前致谢
最佳答案
这是因为 elasticsearch 更新文档的方式。
当您更新文档时,elasticsearch 不会简单地覆盖文档。 它将旧文档标记为已删除,并使用当前文档中存在的字段创建一个新文档。
搜索时,标记为已删除的文档不包含在搜索中。
您还需要了解数据在 lucene 中是如何存储在后端的。在后端,一个 elasticsearch 分片是一个 lucene 索引。 每个 lucene 索引中都有多个段。
当段大小变大时,多个段合并形成一个新的大段。
当段合并形成新段时,标记为已删除的文档不包含在新段中。
所以你的数据量会暂时增加,但最终会下降。
这是一个链接:https://www.elastic.co/blog/lucenes-handling-of-deleted-documents
关于elasticsearch - 为什么弹性索引存储大小增加而更新的索引不插入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59208823/