2

步骤: - elasticsearch 2.3 - 在 ES 中创建文档 => 使用 1 GB 磁盘 - 在 ES 中更新相同文档 => 使用 2 GB 磁盘

为什么会发生?是因为版本控制吗?是否可以避免磁盘使用量翻倍?

目前我们使用 forcemerge ( https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-forcemerge.html ) 但需要几个小时。

4

1 回答 1

4

当你在 ES 中索引一个已经存在的文档时,ES 会将之前的文档标记为已删除(但不会立即将其从索引中删除),并对新文档进行索引。

实际上,如果您的文档重 1K,一旦您重新索引了文档的新版本,第一个文档占用的空间将不会立即回收。因此,文档的第一个“版本”占用 1K,文档的第二个“版本”占用另一个 1K。删除已删除文档的唯一方法是调用您发现的 Force Merge API,或者等到段在后台自动合并。你不应该真的担心这个过程。

于 2019-10-28T06:22:34.693 回答