public virtual void TestClone() { IndexWriterConfig conf = new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(Random())); IndexWriterConfig clone = (IndexWriterConfig)conf.Clone(); // Make sure parameters that can't be reused are cloned IndexDeletionPolicy delPolicy = conf.DelPolicy; IndexDeletionPolicy delPolicyClone = clone.DelPolicy; Assert.IsTrue(delPolicy.GetType() == delPolicyClone.GetType() && (delPolicy != delPolicyClone || delPolicy.Clone() == delPolicyClone.Clone())); FlushPolicy flushPolicy = conf.FlushPolicy; FlushPolicy flushPolicyClone = clone.FlushPolicy; Assert.IsTrue(flushPolicy.GetType() == flushPolicyClone.GetType() && (flushPolicy != flushPolicyClone || flushPolicy.Clone() == flushPolicyClone.Clone())); DocumentsWriterPerThreadPool pool = conf.IndexerThreadPool; DocumentsWriterPerThreadPool poolClone = clone.IndexerThreadPool; Assert.IsTrue(pool.GetType() == poolClone.GetType() && (pool != poolClone || pool.Clone() == poolClone.Clone())); MergePolicy mergePolicy = conf.MergePolicy; MergePolicy mergePolicyClone = clone.MergePolicy; Assert.IsTrue(mergePolicy.GetType() == mergePolicyClone.GetType() && (mergePolicy != mergePolicyClone || mergePolicy.Clone() == mergePolicyClone.Clone())); IMergeScheduler mergeSched = conf.MergeScheduler; IMergeScheduler mergeSchedClone = clone.MergeScheduler; Assert.IsTrue(mergeSched.GetType() == mergeSchedClone.GetType() && (mergeSched != mergeSchedClone || mergeSched.Clone() == mergeSchedClone.Clone())); conf.SetMergeScheduler(new SerialMergeScheduler()); Assert.AreEqual(typeof(ConcurrentMergeScheduler), clone.MergeScheduler.GetType()); }
public override string ToString() { StringBuilder sb = new StringBuilder(); sb.Append("matchVersion=").Append(matchVersion).Append("\n"); sb.Append("analyzer=").Append(analyzer == null ? "null" : analyzer.GetType().Name).Append("\n"); sb.Append("ramBufferSizeMB=").Append(RAMBufferSizeMB).Append("\n"); sb.Append("maxBufferedDocs=").Append(MaxBufferedDocs).Append("\n"); sb.Append("maxBufferedDeleteTerms=").Append(MaxBufferedDeleteTerms).Append("\n"); sb.Append("mergedSegmentWarmer=").Append(MergedSegmentWarmer).Append("\n"); sb.Append("readerTermsIndexDivisor=").Append(ReaderTermsIndexDivisor).Append("\n"); sb.Append("termIndexInterval=").Append(TermIndexInterval).Append("\n"); // TODO: this should be private to the codec, not settable here sb.Append("delPolicy=").Append(IndexDeletionPolicy.GetType().Name).Append("\n"); IndexCommit commit = IndexCommit; sb.Append("commit=").Append(commit == null ? "null" : commit.ToString()).Append("\n"); sb.Append("openMode=").Append(OpenMode).Append("\n"); sb.Append("similarity=").Append(Similarity.GetType().Name).Append("\n"); sb.Append("mergeScheduler=").Append(MergeScheduler).Append("\n"); sb.Append("default WRITE_LOCK_TIMEOUT=").Append(IndexWriterConfig.WRITE_LOCK_TIMEOUT).Append("\n"); sb.Append("writeLockTimeout=").Append(WriteLockTimeout).Append("\n"); sb.Append("codec=").Append(Codec).Append("\n"); sb.Append("infoStream=").Append(InfoStream.GetType().Name).Append("\n"); sb.Append("mergePolicy=").Append(MergePolicy).Append("\n"); sb.Append("indexerThreadPool=").Append(IndexerThreadPool).Append("\n"); sb.Append("readerPooling=").Append(UseReaderPooling).Append("\n"); sb.Append("perThreadHardLimitMB=").Append(RAMPerThreadHardLimitMB).Append("\n"); sb.Append("useCompoundFile=").Append(UseCompoundFile).Append("\n"); sb.Append("checkIntegrityAtMerge=").Append(CheckIntegrityAtMerge).Append("\n"); return(sb.ToString()); }