es关闭不使用的index、真正删除文档


因为只要索引处于open状态,就会占用内存+磁盘;

如果将索引close,只会占用磁盘

Curl -XPOST ‘hadoop01:9200/index/_close’

 

------

在es中删除文档,数据不会马上在硬盘上删除,而是在es索引中产生一个.del 文件;

并且es在检索过程中也会把.del文件进行检索(因为都是当前下的索引片段),然后es在把标记有.del的文档进行过滤;【这并没有提高检索的效率】

实际上如果当前有大量的.del文件,我们应该让.del真正的从es中抹去,这样就优化了检索的效率,不至于检索后在过滤

什么时候真正删除.del文件?

在索引合并阶段就会删除.del文件,所以可以执行以下命令清楚.del文件:

Curl -XPOST ‘http://hadoop01:9200/my_index/_forcemerge?only_expunge_deletes=true

 

Java客户端操作:

Client.admin().indices().prepareForceMerge(“my_index”).setOnlyExpungeDeletes(true).get();


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM