Lucene索引删除问题

J2EE 码拜 10年前 (2015-04-04) 1329次浏览 0个评论

删除整个索引,再创建。
运行后发现,删除、创建方法都执行了,但索引都还在。最后出现了创建的4个索引都存在的情况。
在删除方法里加上commit也还是删不掉。

public static void main(String[] args) throws IOException {
	for (int i = 0; i < 4; i++) {
		System.out.println("删除索引1");
		deleteAllIndex();
		System.out.println("删除索引2");
		System.out.println("创建索引1");
		index();
		System.out.println("创建索引2");
	}
}

删除索引的方法:

public static boolean deleteAllIndex() throws IOException {
	try {
		getIndexWriter().deleteAll();
		getIndexWriter().commit();
		// getIndexWriter().forceMerge(1);
		// getIndexWriter().forceMergeDeletes();
		return true;
	} catch (Exception e) {
		return false;
	} finally {
		if (indexWriter != null) {
			try {
				indexWriter.close();
				indexWriter = null;
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}
}
Lucene索引删除问题
求解….
Lucene索引删除问题
20分
创建索引策略是什么? IndexWriterConfig.setOpenMode(OpenMode.CREATE);
Lucene索引删除问题
引用 2 楼 fangmingshijie 的回复:

创建索引策略是什么? IndexWriterConfig.setOpenMode(OpenMode.CREATE);

没用这个。
直接用这个的:IndexWriterConfig indexWriterConfig = new IndexWriterConfig(Version.LUCENE_43, new StandardAnalyzer(Version.LUCENE_43));

Lucene索引删除问题
20分
引用 3 楼 chinamummy29 的回复:
Quote: 引用 2 楼 fangmingshijie 的回复:

创建索引策略是什么? IndexWriterConfig.setOpenMode(OpenMode.CREATE);

没用这个。
直接用这个的:IndexWriterConfig indexWriterConfig = new IndexWriterConfig(Version.LUCENE_43, new StandardAnalyzer(Version.LUCENE_43));

这种方式是追加的OpenMode.CREATE_OR_APPEND,你可以在main方法中先不使用index(),就可以知道是否删除了

Lucene索引删除问题
引用 4 楼 qq467339640 的回复:
Quote: 引用 3 楼 chinamummy29 的回复:
Quote: 引用 2 楼 fangmingshijie 的回复:

创建索引策略是什么? IndexWriterConfig.setOpenMode(OpenMode.CREATE);

没用这个。
直接用这个的:IndexWriterConfig indexWriterConfig = new IndexWriterConfig(Version.LUCENE_43, new StandardAnalyzer(Version.LUCENE_43));

这种方式是追加的OpenMode.CREATE_OR_APPEND,你可以在main方法中先不使用index(),就可以知道是否删除了

是没有setOpenMpde 谢谢


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Lucene索引删除问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!