public virtual void TestChangingRAMBuffer2() { RAMDirectory dir = new RAMDirectory(); IndexWriter writer = new IndexWriter(dir, new WhitespaceAnalyzer(), true, IndexWriter.MaxFieldLength.LIMITED); writer.SetMaxBufferedDocs(10); writer.SetMaxBufferedDeleteTerms(10); writer.SetRAMBufferSizeMB(IndexWriter.DISABLE_AUTO_FLUSH); for (int j = 1; j < 52; j++) { Document doc = new Document(); doc.Add(new Field("field", "aaa" + j, Field.Store.YES, Field.Index.ANALYZED)); writer.AddDocument(doc); } int lastFlushCount = - 1; for (int j = 1; j < 52; j++) { writer.DeleteDocuments(new Term("field", "aaa" + j)); _TestUtil.SyncConcurrentMerges(writer); int flushCount = writer.GetFlushCount(); if (j == 1) lastFlushCount = flushCount; else if (j < 10) { // No new files should be created Assert.AreEqual(flushCount, lastFlushCount); } else if (10 == j) { Assert.IsTrue(flushCount > lastFlushCount); lastFlushCount = flushCount; writer.SetRAMBufferSizeMB(0.000001); writer.SetMaxBufferedDeleteTerms(1); } else if (j < 20) { Assert.IsTrue(flushCount > lastFlushCount); lastFlushCount = flushCount; } else if (20 == j) { writer.SetRAMBufferSizeMB(16); writer.SetMaxBufferedDeleteTerms(IndexWriter.DISABLE_AUTO_FLUSH); lastFlushCount = flushCount; } else if (j < 30) { Assert.AreEqual(flushCount, lastFlushCount); } else if (30 == j) { writer.SetRAMBufferSizeMB(0.000001); writer.SetMaxBufferedDeleteTerms(IndexWriter.DISABLE_AUTO_FLUSH); writer.SetMaxBufferedDeleteTerms(1); } else if (j < 40) { Assert.IsTrue(flushCount > lastFlushCount); lastFlushCount = flushCount; } else if (40 == j) { writer.SetMaxBufferedDeleteTerms(10); writer.SetRAMBufferSizeMB(IndexWriter.DISABLE_AUTO_FLUSH); lastFlushCount = flushCount; } else if (j < 50) { Assert.AreEqual(flushCount, lastFlushCount); writer.SetMaxBufferedDeleteTerms(10); writer.SetRAMBufferSizeMB(IndexWriter.DISABLE_AUTO_FLUSH); } else if (50 == j) { Assert.IsTrue(flushCount > lastFlushCount); } } writer.Close(); dir.Close(); }