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();

posted @ 2017-05-22 23:54  niutao  阅读(4767)  评论(0编辑  收藏  举报