lucene 索引出错 no segments* file found in org.apache.lucene.store.MMapDirectory

创建第一个lucene索引后,搜索出错:

org.apache.lucene.index.IndexNotFoundException: no segments* file found in org.apache.lucene.store.MMapDirectory@H:\lucene lockFactory=org.apache.lucene.store.NativeFSLockFactory@487c9b46: files: [write.lock, _0.fdt, _0.fdx]

at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:712)
at org.apache.lucene.index.DirectoryReader.open(DirectoryReader.java:75)
at org.apache.lucene.index.IndexReader.open(IndexReader.java:462)
at org.apache.lucene.index.IndexReader.open(IndexReader.java:308)
at lucene.Searcher.search(Searcher.java:26)

at lucene.Searcher.main(Searcher.java:49)


原因:

indexer创建完索引后没有关闭(提交)导致索引没有完整创建,导致搜索报错

注意如下说明:(index.close())

public static void main(String[] args) {
		long start = System.currentTimeMillis();
		Indexer indexer = null;
		int numIndexed = 0;
		try {
			indexer = new Indexer(indexDir);
			numIndexed = indexer.index(dataDir, new TextFilesFilter());
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			try {
				//IndexerWriter写索引操作关闭,提交写索引(如没关闭会造成索引无法完整创建,查询时出错)
				indexer.close();
		} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		long end = System.currentTimeMillis();
		System.out.println("\n Indexing " + numIndexed + " files took "
				+ (end - start) + "milliseconds");

	}


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值