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);
+	}
+}