Mercurial Hosting > nabble
diff src/nabble/model/lucene/LuceneSearcherImpl.java @ 0:7ecd1a4ef557
add content
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Thu, 21 Mar 2019 19:15:52 -0600 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/nabble/model/lucene/LuceneSearcherImpl.java Thu Mar 21 19:15:52 2019 -0600 @@ -0,0 +1,64 @@ +package nabble.model.lucene; + +import java.io.IOException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.apache.lucene.document.Document; +import org.apache.lucene.index.CorruptIndexException; +import org.apache.lucene.search.Query; +import org.apache.lucene.search.Filter; +import org.apache.lucene.search.Collector; +import org.apache.lucene.search.TopDocs; +import org.apache.lucene.search.TopFieldDocs; +import org.apache.lucene.search.Sort; + + +final class LuceneSearcherImpl implements LuceneSearcher { + private static final Logger logger = LoggerFactory.getLogger(LuceneSearcherImpl.class); + + private final LuceneSearcher searcher; + private boolean isClosed = false; + + LuceneSearcherImpl(LuceneSearcher searcher) { + this.searcher = searcher; + } + + public void close() throws IOException { + if( !isClosed ) { + searcher.close(); + isClosed = true; + } + } + + @Override protected void finalize() throws Throwable { + if( !isClosed ) { + logger.error("didn't close IndexSearcher"/*,initException*/); + close(); + } + super.finalize(); + } + + public void search(Query query,Collector results) throws IOException { + searcher.search(query,results); + } + + public void search(Query query,Filter filter,Collector results) throws IOException { + searcher.search(query,filter,results); + } + + public TopDocs search(Query query,int n) throws IOException { + return searcher.search(query,n); + } + + public TopDocs search(Query query,Filter filter,int n) throws IOException { + return searcher.search(query,filter,n); + } + + public TopFieldDocs search(Query query,Filter filter,int n,Sort sort) throws IOException { + return searcher.search(query,filter,n,sort); + } + + public Document doc(int i) throws CorruptIndexException, IOException { + return searcher.doc(i); + } +}