Elasticsearch中的索引删除并不是立即执行的,而是会被标记为删除,然后在后台异步执行。这是因为Elasticsearch需要在删除索引的同时,确保搜索和写入操作的正常进行。
清理已经标记删除的索引的时间:Elasticsearch会在后台定期执行垃圾回收(Garbage Collection)操作,清理已经被标记为删除的索引。这个时间间隔可以在Elasticsearch的配置文件中进行调整,默认情况下,垃圾回收操作每3分钟执行一次。
能否主动触发清理:是的,你可以通过API手动触发垃圾回收操作。在Elasticsearch的Java客户端中,你可以使用IndicesStatsRequest
请求来获取所有索引的垃圾回收状态,然后使用IndicesDeleteRequest
请求来删除已经标记为删除的索引。
注意:在执行垃圾回收操作时,Elasticsearch会暂停所有的读写操作,因此,你应该在业务低峰期执行这个操作,以避免影响到正常的业务。
根据ES官方文档https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-refresh.html#docs-refresh
可以回答以上问题
1ES有后台线程会定期去清除这些已删除的索引并且释放空间;还有就是ES在索引段合并的时候也会触发清理
2根据文档,可以在删除索引的接口上添加refresh=true,不过会影响性能,需要慎重
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。