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