标签:
http://youyang-java.iteye.com/blog/1731205
对于IndexReader而言,反复使用 IndexReader .open打开会有很大的开销,所以一般在整个程序的生命周期中只会打开一个IndexReader,通过这个IndexReader来创建不同的IndexSearcher,如果使用单例模式,可能出现的问题有:
1、当使用Writer修改了索引之后不会更新信息,所以需要使用IndexReader.openIfChange方法操作
if (reader == null) {
reader = IndexReader.open(directory, false);
} else {
//如果索引改变了,才返回一个reader ,否则返回null
IndexReader tr = IndexReader.openIfChanged (reader);
if (tr != null) {
reader.close();
reader = tr;
}
}
对于IndexWriter而言,如果IndexWriter在创建完成之后,没有关闭,需要进行commit操作之后才能提交
writer.commit ();
标签:
原文地址:http://www.cnblogs.com/NickyYe/p/4381149.html