You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2011/11/19 17:15:09 UTC
svn commit: r1204009 - in /lucene/dev/trunk: ./
lucene/src/java/org/apache/lucene/search/NRTManager.java
Author: mikemccand
Date: Sat Nov 19 16:15:08 2011
New Revision: 1204009
URL: http://svn.apache.org/viewvc?rev=1204009&view=rev
Log:
add some missing methods to NRTMgr; add sugar ctor not taking ES
Modified:
lucene/dev/trunk/ (props changed)
lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/NRTManager.java
Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/NRTManager.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/NRTManager.java?rev=1204009&r1=1204008&r2=1204009&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/NRTManager.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/NRTManager.java Sat Nov 19 16:15:08 2011
@@ -28,11 +28,13 @@ import java.util.concurrent.locks.Condit
import java.util.concurrent.locks.ReentrantLock;
import org.apache.lucene.analysis.Analyzer;
-import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.CorruptIndexException;
+import org.apache.lucene.index.IndexReader; // javadocs
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexableField;
import org.apache.lucene.index.Term;
-import org.apache.lucene.search.NRTManagerReopenThread;
+import org.apache.lucene.search.IndexSearcher; // javadocs
+import org.apache.lucene.store.Directory;
import org.apache.lucene.util.IOUtils;
import org.apache.lucene.util.ThreadInterruptedException;
@@ -65,6 +67,25 @@ public class NRTManager implements Close
*
* @param writer IndexWriter to open near-real-time
* readers
+ * @param warmer optional {@link SearcherWarmer}. Pass
+ * null if you don't require the searcher to warmed
+ * before going live. If this is non-null then a
+ * merged segment warmer is installed on the
+ * provided IndexWriter's config.
+ *
+ * <p><b>NOTE</b>: the provided {@link SearcherWarmer} is
+ * not invoked for the initial searcher; you should
+ * warm it yourself if necessary.
+ */
+ public NRTManager(IndexWriter writer, SearcherWarmer warmer) throws IOException {
+ this(writer, null, warmer, true);
+ }
+
+ /**
+ * Create new NRTManager.
+ *
+ * @param writer IndexWriter to open near-real-time
+ * readers
* @param es optional ExecutorService so different segments can
* be searched concurrently (see {@link IndexSearcher#IndexSearcher(IndexReader, ExecutorService)}.
* Pass <code>null</code> to search segments sequentially.
@@ -152,12 +173,30 @@ public class NRTManager implements Close
return indexingGen.get();
}
+ public long deleteDocuments(Term... terms) throws IOException {
+ writer.deleteDocuments(terms);
+ // Return gen as of when indexing finished:
+ return indexingGen.get();
+ }
+
public long deleteDocuments(Query q) throws IOException {
writer.deleteDocuments(q);
// Return gen as of when indexing finished:
return indexingGen.get();
}
+ public long deleteDocuments(Query... queries) throws IOException {
+ writer.deleteDocuments(queries);
+ // Return gen as of when indexing finished:
+ return indexingGen.get();
+ }
+
+ public long deleteAll() throws IOException {
+ writer.deleteAll();
+ // Return gen as of when indexing finished:
+ return indexingGen.get();
+ }
+
public long addDocument(Iterable<? extends IndexableField> d, Analyzer a) throws IOException {
writer.addDocument(d, a);
// Return gen as of when indexing finished:
@@ -182,6 +221,18 @@ public class NRTManager implements Close
return indexingGen.get();
}
+ public long addIndexes(Directory... dirs) throws CorruptIndexException, IOException {
+ writer.addIndexes(dirs);
+ // Return gen as of when indexing finished:
+ return indexingGen.get();
+ }
+
+ public long addIndexes(IndexReader... readers) throws CorruptIndexException, IOException {
+ writer.addIndexes(readers);
+ // Return gen as of when indexing finished:
+ return indexingGen.get();
+ }
+
/**
* Waits for a given {@link SearcherManager} target generation to be available
* via {@link #getSearcherManager(boolean)}. If the current generation is less