Hi,

Should the IndexSearcher instance be closed after very search completed.

I wrote a sample, but I have not closed the singleton instatnce of 
IndexSearcher unless IndexReader#isCurrent() return false.

Now the sample runs well, but I saw almost other samples would close the  
IndexSearcher instance on the end of very search.

Should I do it like them?

By the way, I use the constructor IndexSearcher(Directory directory), so  
should I call the method IndexSearcher.close()?


------------------------------------
the Code sample:
------------------------------------
public IndexSearcher getIndexSearcher() throws IOException {
                
        if (this.indexSearcher == null) {
                return new IndexSearcher(getIndexDirectory());
        } else {
                IndexReader ir = indexSearcher.getIndexReader();
                if(!ir.isCurrent()){
                        this.indexSearcher.close();
                        this.indexSearcher=new IndexSearcher
(getIndexDirectory());
                        ir=indexSearcher.getIndexReader();
                        if(ir.hasDeletions()){
                                if (this.indexWriter != null) {
                                        this.indexWriter.optimize();
                                }       
                        }
                }
                return this.indexSearcher;
        }
}


Best regards
Anson

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to