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/03/16 17:30:10 UTC

svn commit: r1082186 - /lucene/dev/trunk/lucene/src/test-framework/org/apache/lucene/index/RandomIndexWriter.java

Author: mikemccand
Date: Wed Mar 16 16:30:10 2011
New Revision: 1082186

URL: http://svn.apache.org/viewvc?rev=1082186&view=rev
Log:
make RandomIndexWriter sometimes use partial optimize

Modified:
    lucene/dev/trunk/lucene/src/test-framework/org/apache/lucene/index/RandomIndexWriter.java

Modified: lucene/dev/trunk/lucene/src/test-framework/org/apache/lucene/index/RandomIndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test-framework/org/apache/lucene/index/RandomIndexWriter.java?rev=1082186&r1=1082185&r2=1082186&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test-framework/org/apache/lucene/index/RandomIndexWriter.java (original)
+++ lucene/dev/trunk/lucene/src/test-framework/org/apache/lucene/index/RandomIndexWriter.java Wed Mar 16 16:30:10 2011
@@ -150,10 +150,24 @@ public class RandomIndexWriter implement
     return getReader(true);
   }
 
+  private void doRandomOptimize() throws IOException {
+    final int segCount = w.getSegmentCount();
+    if (r.nextBoolean() || segCount == 0) {
+      // full optimize
+      w.optimize();
+    } else {
+      // partial optimize
+      final int limit = _TestUtil.nextInt(r, 1, segCount);
+      w.optimize(limit);
+      assert w.getSegmentCount() <= limit: "limit=" + limit + " actual=" + w.getSegmentCount();
+    }
+  }
+
   public IndexReader getReader(boolean applyDeletions) throws IOException {
     getReaderCalled = true;
-    if (r.nextInt(4) == 2)
-      w.optimize();
+    if (r.nextInt(4) == 2) {
+      doRandomOptimize();
+    }
     // If we are writing with PreFlexRW, force a full
     // IndexReader.open so terms are sorted in codepoint
     // order during searching:
@@ -179,7 +193,7 @@ public class RandomIndexWriter implement
     // if someone isn't using getReader() API, we want to be sure to
     // maybeOptimize since presumably they might open a reader on the dir.
     if (getReaderCalled == false && r.nextInt(4) == 2) {
-      w.optimize();
+      doRandomOptimize();
     }
     w.close();
   }