误删Elasticsearch活跃索引触发index_not_found_exception如何解决
问题根因
报错是由于app-write别名绑定的活跃写入索引被误删后,定时rollover任务无法读取当前索引的序号,计算下一个索引名称时生成了非法的-000001,查询不存在的索引就抛出了404异常。
修复步骤
第一步:确认当前别名状态
先执行以下命令查看app-write别名的绑定情况,确认没有指向有效索引:GET _alias/app-write第二步:手动重建符合规则的初始索引
执行以下命令创建初始索引并绑定写入别名,如果你有自定义的app-write-*索引模板,新建索引会自动匹配模板配置:PUT /app-write-000001 { "aliases": { "app-write": { "is_write_index": true } } }如果你需要恢复被删索引的历史数据,且此前配置了ES快照备份,可直接从最近的快照恢复被删除的索引,再将
app-write别名的is_write_index属性绑定到恢复后的索引即可,无需创建空索引。第三步:验证修复结果
先确认索引创建正常:GET app-write-000001再手动触发一次rollover任务验证是否正常运行:
POST /app-write/_rollover执行后没有抛出索引不存在的错误即代表修复完成,定时任务后续会自动正常运行。
内容的提问来源于stack exchange,提问作者Cezar
相关产品推荐
相关产品推荐

