public virtual void TestForceMergeNotNeeded() { Directory dir = NewDirectory(); AtomicBoolean mayMerge = new AtomicBoolean(true); MergeScheduler mergeScheduler = new SerialMergeSchedulerAnonymousInnerClassHelper(this, mayMerge); IndexWriter writer = new IndexWriter(dir, NewIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(Random())).SetMergeScheduler(mergeScheduler).SetMergePolicy(MergePolicy())); writer.Config.MergePolicy.NoCFSRatio = Random().NextBoolean() ? 0 : 1; int numSegments = TestUtil.NextInt(Random(), 2, 20); for (int i = 0; i < numSegments; ++i) { int numDocs = TestUtil.NextInt(Random(), 1, 5); for (int j = 0; j < numDocs; ++j) { writer.AddDocument(new Document()); } writer.GetReader().Dispose(); } for (int i = 5; i >= 0; --i) { int segmentCount = writer.SegmentCount; int maxNumSegments = i == 0 ? 1 : TestUtil.NextInt(Random(), 1, 10); mayMerge.Set(segmentCount > maxNumSegments); writer.ForceMerge(maxNumSegments); } writer.Dispose(); dir.Dispose(); }
public virtual void TestForceMergeNotNeeded() { Directory dir = NewDirectory(); AtomicBoolean mayMerge = new AtomicBoolean(true); MergeScheduler mergeScheduler = new SerialMergeSchedulerAnonymousInnerClassHelper(this, mayMerge); IndexWriter writer = new IndexWriter(dir, NewIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(Random())).SetMergeScheduler(mergeScheduler).SetMergePolicy(MergePolicy())); writer.Config.MergePolicy.NoCFSRatio = Random().NextBoolean() ? 0 : 1; int numSegments = TestUtil.NextInt(Random(), 2, 20); for (int i = 0; i < numSegments; ++i) { int numDocs = TestUtil.NextInt(Random(), 1, 5); for (int j = 0; j < numDocs; ++j) { writer.AddDocument(new Document()); } writer.Reader.Dispose(); } for (int i = 5; i >= 0; --i) { int segmentCount = writer.SegmentCount; int maxNumSegments = i == 0 ? 1 : TestUtil.NextInt(Random(), 1, 10); mayMerge.Set(segmentCount > maxNumSegments); writer.ForceMerge(maxNumSegments); } writer.Dispose(); dir.Dispose(); }