IndexWriter和IndexReader对象分析

来源:互联网 发布:p2p摄像头监控软件 编辑:程序博客网 时间:2024/05/17 07:12

IndexWriter和IndexReader对象的创建都是非常耗时的操作

对于IndexReader一般用IndexReader创建一个Searcher对象来进行操作,但是这个时候,如果用

writer对索引进行了更新,searcher对象不能实时的相应出来,所以用一下方法来创建searcher

 

        public boolean getSearcher(){
try {
if(reader==null){
reader = IndexReader.open(directory);
}else{
IndexReader ir = IndexReader.openIfChanged(reader);
if(ir!=null){
reader.close();
reader = ir;
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
return true;
}

对于IndexWriter对象怎么处理呢?

writer不能关闭,用writer执行完我们的操作之后,我们只需要调用一下方法即可,writer在这里使用单例模式

writer.commit();

本文出自 “Kenan_ITBlog” 博客,请务必保留此出处http://soukenan.blog.51cto.com/5130995/1120874