分享

ElasticSearch删除索引后如何释放磁盘空间

erbin 发表于 2017-11-6 21:11:29 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 3 37238
搭了一个单机的es,通过bulk方式删除掉一部分索引后,记录的确检索不到了,但是看磁盘空间并没有释放出来,删除索引后还需要做什么flush操作吗?
[mw_shl_code=shell,true]curl -XPOST 'localhost:9200/searchrecord/lastweek/_bulk?pretty' --data-binary @deleteIndex.json[/mw_shl_code]
WX20171106-210419.png
WX20171106-210935.png

已有(3)人评论

跳转到指定楼层
erbin 发表于 2017-11-7 14:11:31
找到答案了,es删除索引后只是把索引标记为已删除,需要手动执行forcemerge才会真正的删除掉。
https://stackoverflow.com/questions/20608417/elasticsearch-how-to-free-store-size-after-deleting-documentshttps://www.elastic.co/guide/en/elasticsearch/reference/5.6/indices-forcemerge.html
[mw_shl_code=shell,true]curl -XPOST 'http://localhost:9200/searchrecord/_forcemerge?only_expunge_deletes=true'[/mw_shl_code]
回复

使用道具 举报

easthome001 发表于 2017-11-7 14:40:08
erbin 发表于 2017-11-7 14:11
找到答案了,es删除索引后只是把索引标记为已删除,需要手动执行forcemerge才会真正的删除掉。
https://st ...

那就是它只是改变了里面的标记,并未真正删除。
回复

使用道具 举报

erbin 发表于 2017-11-7 15:02:57
easthome001 发表于 2017-11-7 14:40
那就是它只是改变了里面的标记,并未真正删除。

是的。调用forcemerge也不是真正的删除,而是重新创建了不包含已删除的doc的segments。
[mw_shl_code=html,true]In Lucene, a document is not deleted from a segment, just marked as deleted.
During a merge process of segments, a new segment is created that does not have those deletes.[/mw_shl_code]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条