因為只要索引處於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();
