在Elasticsearch中删除文件后回收磁盘空间

1 elasticsearch

当我从Elasticsearch删除文档时,为什么我的“总大小”保持不变,尽管在没有先前存储的数据的情况下明显要小得多?我已经读过有关索引优化的信息,但是我不确定这是什么或如何做。

谢谢

Ale*_*lex 6

我敢肯定,SO和Google上都会有大量与此相关的问题,因此这可能是重复的答案。但是-删除文档只会将它们标记为已删除,实际上并不会将其从数据存储中删除。

在旧的ES中,曾经有一个名为“优化”的功能(已过时)-如今,forcemerge是增强的替代产品。以下命令应释放您有权使用的空间。

curl -XPOST 'http://localhost:9200/_forcemerge?only_expunge_deletes=true'
Run Code Online (Sandbox Code Playgroud)

如果您有兴趣,这里有更多关于forcemerge的信息:

https://www.elastic.co/blog/found-elasticsearch-from-the-bottom-up

  • 另外,这些片段必须使用最多特定的阈值空间才能进行删除操作。默认情况下,设置`index.merge.policy.expunge_deletes_allowed`设置为10%,因此如果少于10%的已删除文档,它们不会被擦除。但是您不必为此担心。 (2认同)
  • 出于好奇,您能将百分比降低到1%还是0?还是有上限@Val (2认同)
  • 你绝对可以! (2认同)