开发者社区 > 大数据与机器学习 > 检索分析服务 Elasticsearch版 > 正文

Elasticsearch中这个怎么解决?

"Elasticsearch中这个咋解决的?
8ed09b24c107116798f80fdb96ae1012.png"

展开
收起
十一0204 2023-11-14 19:54:53 168 0
2 条回答
写回答
取消 提交回答
  • Elasticsearch中的索引删除并不是立即执行的,而是会被标记为删除,然后在后台异步执行。这是因为Elasticsearch需要在删除索引的同时,确保搜索和写入操作的正常进行。

    1. 清理已经标记删除的索引的时间:Elasticsearch会在后台定期执行垃圾回收(Garbage Collection)操作,清理已经被标记为删除的索引。这个时间间隔可以在Elasticsearch的配置文件中进行调整,默认情况下,垃圾回收操作每3分钟执行一次。

    2. 能否主动触发清理:是的,你可以通过API手动触发垃圾回收操作。在Elasticsearch的Java客户端中,你可以使用IndicesStatsRequest请求来获取所有索引的垃圾回收状态,然后使用IndicesDeleteRequest请求来删除已经标记为删除的索引。

    注意:在执行垃圾回收操作时,Elasticsearch会暂停所有的读写操作,因此,你应该在业务低峰期执行这个操作,以避免影响到正常的业务。

    2023-11-30 11:36:31
    赞同 展开评论 打赏
  • 根据ES官方文档https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-refresh.html#docs-refresh
    可以回答以上问题
    1ES有后台线程会定期去清除这些已删除的索引并且释放空间;还有就是ES在索引段合并的时候也会触发清理
    2根据文档,可以在删除索引的接口上添加refresh=true,不过会影响性能,需要慎重
    image.png

    2023-11-16 16:08:20
    赞同 展开评论 打赏

阿里云检索分析服务Elasticsearch版兼容开源ELK功能,免运维全托管,提升企业数据检索与运维分析能力。

热门讨论

热门文章

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载