Lucene.Net.Index.IndexWriterConfig.SetMergePolicy C# (CSharp) Method

SetMergePolicy() public method

Expert: MergePolicy is invoked whenever there are changes to the segments in the index. Its role is to select which merges to do, if any, and return a MergePolicy.MergeSpecification describing the merges. It also selects merges to do for forceMerge.

Only takes effect when IndexWriter is first created.

public SetMergePolicy ( MergePolicy mergePolicy ) : IndexWriterConfig
mergePolicy MergePolicy
return IndexWriterConfig
        public IndexWriterConfig SetMergePolicy(MergePolicy mergePolicy)
        {
            if (mergePolicy == null)
            {
                throw new System.ArgumentException("mergePolicy must not be null");
            }
            this.mergePolicy = mergePolicy;
            return this;
        }

Usage Example

        public virtual void TestSingleNonMergeableSegment()
        {
            Directory dir = new RAMDirectory();

            IndexWriterConfig conf   = NewWriterConfig();
            IndexWriter       writer = new IndexWriter(dir, conf);

            AddDocs(writer, 3, true);

            writer.Dispose();

            conf = NewWriterConfig();
            LogMergePolicy lmp = new LogDocMergePolicy();

            lmp.MaxMergeDocs = 3;
            conf.SetMergePolicy(lmp);

            writer = new IndexWriter(dir, conf);
            writer.ForceMerge(1);
            writer.Dispose();

            // Verify that the last segment does not have deletions.
            SegmentInfos sis = new SegmentInfos();

            sis.Read(dir);
            Assert.AreEqual(1, sis.Count);
        }
All Usage Examples Of Lucene.Net.Index.IndexWriterConfig::SetMergePolicy