lucene索引文件检测CheckIndex

lucene索引文件有可能由于各种原因导致损坏,所以对索引文件定期进行检测和备份是很有必要的,不然等问题真的暴露出来后往往不好解决。
lucene提供了检测索引文件的工具类:CheckIndex
在控制台可以使用如下命令得到检测结果:
C:\Users\Administrator>java -cp f://lucene-core-6.6.0.jar -ea:org.apache.lucene.
.. org.apache.lucene.index.CheckIndex d:\Users\Administrator\Desktop\luceneData
使用CheckIndex工具类,将索引路径传给它就可以得到:

如果索引有损坏得到的结果是:

在程序中我们可以将得到的检索结果输出到指定文件中,或者其他日志中,便于后期分析使用:
public class CheckIndexTest {
	Logger logger = Logger.getLogger(CheckIndex.class);
	CheckIndex check ;
	@Test
	public void test() {
		Directory dir = LuceneUtil.getDir(LuceneConstant.INDEXPATH);
		try {
			check = new CheckIndex(dir);
			PrintStream out = new PrintStream("f://a.txt");
			check.setInfoStream(out);
			Status checkIndex = check.checkIndex();
			if(checkIndex.clean) {
				logger.info("当前索引正常!");
			}else {
				logger.info("当前索引有损坏,请查看检查日志!");
			}
		}catch(IOException e) {
			e.printStackTrace();
		}
	}
}
这样在a.txt中就可以得到检测结果。

关于lucene备份没有做过多的了解,暂时这边用不到,因为元数据都在数据库中,索引出现问题就会重新建立索引,但是lucene‘是支持热备份的,测试了一下SnapshotDeletionPolicy好像没有生效,后续再研究。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值