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();