Elasticsearch删除文档并没有真正删除,仅作了删除标记,从而不能再被搜索到。为了回收磁盘空间,需要_forcemerge
API进行清理和优化。
Force Merge API
为了理解Force Merge API,我们需要大概了解Elasticsearch的底层架构Lucene。当往索引中插入文档时,文档被映射到一个或多个分片。每个分片有多个段组成,段可理解为针对特定数据集进行处理的迷你索引。Force Merge API通过合并段减少分片中段数量、删除冗余数据,优化Elasticsearch索引性能,
优化所有索引:
POST /_forcemerge?only_expunge_deletes=true
优化单个索引:
POST /twitter/_forcemerge?only_expunge_deletes=true
twitter
是索引名称
优化多个索引:
POST /twitter,facebook/_forcemerge?only_expunge_deletes=true
twitter
和 facebook
是索引名称。
通过_cat
验证删除的文档是否减少了。
GET /_cat/indices/<target>
GET /_cat/indices
本文参考链接:https://blog.csdn.net/neweastsun/article/details/114179242