步骤: - Elasticsearch 2.3 - 在 ES 中创建文档 => 使用 ~ 1 GB 磁盘 - 在 ES 中更新相同文档 => 使用 ~ 2 GB 磁盘
为什么会发生这种情况? 是由于版本控制吗? 是否可以避免磁盘使用量增加一倍?
目前我们使用forcemerge ( https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-forcemerge.html ),但需要几个小时。
最佳答案
当你在ES中索引一个已经存在的文档时,ES会将之前的文档标记为已删除(但不会立即将其从索引中删除),并索引新文档。
实际上,如果您的文档大小为 1K,那么一旦您对文档的新版本重新建立索引,第一个文档占用的空间将不会立即回收。因此,文档的第一个“版本”占用 1K,文档的第二个“版本”又占用 1K。删除已删除文档的唯一方法是调用您所发现的强制合并 API,或者等待片段在后台自动合并。您实际上不必担心这个过程。
关于elasticsearch重新索引文档减少可用空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58586451/