Show / Hide Table of Contents

    Class UpgradeIndexMergePolicy

    This MergePolicy is used for upgrading all existing segments of an index when calling ForceMerge(Int32). All other methods delegate to the base MergePolicy given to the constructor. This allows for an as-cheap-as possible upgrade of an older index by only upgrading segments that are created by previous Lucene versions. ForceMerge does no longer really merge; it is just used to "ForceMerge" older segment versions away.

    In general one would use IndexUpgrader, but for a fully customizeable upgrade, you can use this like any other MergePolicy and call ForceMerge(Int32):

        IndexWriterConfig iwc = new IndexWriterConfig(LuceneVersion.LUCENE_XX, new KeywordAnalyzer());
        iwc.MergePolicy = new UpgradeIndexMergePolicy(iwc.MergePolicy);
        using (IndexWriter w = new IndexWriter(dir, iwc))
        {
            w.ForceMerge(1);
        }

    Warning: this merge policy may reorder documents if the index was partially upgraded before calling ForceMerge(Int32) (e.g., documents were added). If your application relies on "monotonicity" of doc IDs (which means that the order in which the documents were added to the index is preserved), do a ForceMerge(1) instead. Please note, the delegate MergePolicy may also reorder documents.

    This is a Lucene.NET EXPERIMENTAL API, use at your own risk
    Inheritance
    System.Object
    MergePolicy
    UpgradeIndexMergePolicy
    Inherited Members
    MergePolicy.DEFAULT_NO_CFS_RATIO
    MergePolicy.DEFAULT_MAX_CFS_SEGMENT_SIZE
    MergePolicy.m_writer
    MergePolicy.m_noCFSRatio
    MergePolicy.m_maxCFSSegmentSize
    MergePolicy.Clone()
    MergePolicy.Dispose()
    MergePolicy.Size(SegmentCommitInfo)
    MergePolicy.IsMerged(SegmentInfos, SegmentCommitInfo)
    MergePolicy.NoCFSRatio
    MergePolicy.MaxCFSSegmentSizeMB
    Namespace: Lucene.Net.Index
    Assembly: Lucene.Net.dll
    Syntax
    public class UpgradeIndexMergePolicy : MergePolicy

    Constructors

    | Improve this Doc View Source

    UpgradeIndexMergePolicy(MergePolicy)

    Wrap the given MergePolicy and intercept ForceMerge(Int32) requests to only upgrade segments written with previous Lucene versions.

    Declaration
    public UpgradeIndexMergePolicy(MergePolicy base)
    Parameters
    Type Name Description
    MergePolicy base

    Fields

    | Improve this Doc View Source

    m_base

    Wrapped MergePolicy.

    Declaration
    protected readonly MergePolicy m_base
    Field Value
    Type Description
    MergePolicy

    Methods

    | Improve this Doc View Source

    Dispose(Boolean)

    Declaration
    protected override void Dispose(bool disposing)
    Parameters
    Type Name Description
    System.Boolean disposing
    Overrides
    MergePolicy.Dispose(Boolean)
    | Improve this Doc View Source

    FindForcedDeletesMerges(SegmentInfos)

    Declaration
    public override MergePolicy.MergeSpecification FindForcedDeletesMerges(SegmentInfos segmentInfos)
    Parameters
    Type Name Description
    SegmentInfos segmentInfos
    Returns
    Type Description
    MergePolicy.MergeSpecification
    Overrides
    MergePolicy.FindForcedDeletesMerges(SegmentInfos)
    | Improve this Doc View Source

    FindForcedMerges(SegmentInfos, Int32, IDictionary<SegmentCommitInfo, Nullable<Boolean>>)

    Declaration
    public override MergePolicy.MergeSpecification FindForcedMerges(SegmentInfos segmentInfos, int maxSegmentCount, IDictionary<SegmentCommitInfo, bool?> segmentsToMerge)
    Parameters
    Type Name Description
    SegmentInfos segmentInfos
    System.Int32 maxSegmentCount
    IDictionary<SegmentCommitInfo, System.Nullable<System.Boolean>> segmentsToMerge
    Returns
    Type Description
    MergePolicy.MergeSpecification
    Overrides
    MergePolicy.FindForcedMerges(SegmentInfos, Int32, IDictionary<SegmentCommitInfo, Nullable<Boolean>>)
    | Improve this Doc View Source

    FindMerges(MergeTrigger, SegmentInfos)

    Declaration
    public override MergePolicy.MergeSpecification FindMerges(MergeTrigger mergeTrigger, SegmentInfos segmentInfos)
    Parameters
    Type Name Description
    MergeTrigger mergeTrigger
    SegmentInfos segmentInfos
    Returns
    Type Description
    MergePolicy.MergeSpecification
    Overrides
    MergePolicy.FindMerges(MergeTrigger, SegmentInfos)
    | Improve this Doc View Source

    SetIndexWriter(IndexWriter)

    Declaration
    public override void SetIndexWriter(IndexWriter writer)
    Parameters
    Type Name Description
    IndexWriter writer
    Overrides
    MergePolicy.SetIndexWriter(IndexWriter)
    | Improve this Doc View Source

    ShouldUpgradeSegment(SegmentCommitInfo)

    Returns true if the given segment should be upgraded. The default implementation will return !Constants.LUCENE_MAIN_VERSION.Equals(si.Info.Version, StringComparison.Ordinal), so all segments created with a different version number than this Lucene version will get upgraded.

    Declaration
    protected virtual bool ShouldUpgradeSegment(SegmentCommitInfo si)
    Parameters
    Type Name Description
    SegmentCommitInfo si
    Returns
    Type Description
    System.Boolean
    | Improve this Doc View Source

    ToString()

    Declaration
    public override string ToString()
    Returns
    Type Description
    System.String
    | Improve this Doc View Source

    UseCompoundFile(SegmentInfos, SegmentCommitInfo)

    Declaration
    public override bool UseCompoundFile(SegmentInfos segments, SegmentCommitInfo newSegment)
    Parameters
    Type Name Description
    SegmentInfos segments
    SegmentCommitInfo newSegment
    Returns
    Type Description
    System.Boolean
    Overrides
    MergePolicy.UseCompoundFile(SegmentInfos, SegmentCommitInfo)

    See Also

    IndexUpgrader
    • Improve this Doc
    • View Source
    Back to top Copyright © 2020 Licensed to the Apache Software Foundation (ASF)