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