Class LatestVersionMergePolicy

java.lang.Object
org.apache.lucene.index.MergePolicy
org.apache.lucene.index.FilterMergePolicy
org.apache.solr.index.LatestVersionMergePolicy
All Implemented Interfaces:
org.apache.lucene.util.Unwrappable<org.apache.lucene.index.MergePolicy>

public class LatestVersionMergePolicy extends org.apache.lucene.index.FilterMergePolicy
Prevents any older version segment (i.e. older than current lucene major version), either original or one derived as a result of merging with an older version segment, from being considered for merges. That way a snapshot of older segments remains consistent. This assists in upgrading to a future Lucene major version if existing documents are reindexed in the current version with this merge policy in place.
  • Nested Class Summary

    Nested classes/interfaces inherited from class org.apache.lucene.index.MergePolicy

    org.apache.lucene.index.MergePolicy.MergeAbortedException, org.apache.lucene.index.MergePolicy.MergeContext, org.apache.lucene.index.MergePolicy.MergeException, org.apache.lucene.index.MergePolicy.MergeSpecification, org.apache.lucene.index.MergePolicy.OneMerge, org.apache.lucene.index.MergePolicy.OneMergeProgress
  • Field Summary

    Fields inherited from class org.apache.lucene.index.FilterMergePolicy

    in

    Fields inherited from class org.apache.lucene.index.MergePolicy

    DEFAULT_MAX_CFS_SEGMENT_SIZE, DEFAULT_NO_CFS_RATIO, maxCFSSegmentSize, noCFSRatio
  • Constructor Summary

    Constructors
    Constructor
    Description
    LatestVersionMergePolicy(org.apache.lucene.index.MergePolicy in)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected boolean
    allowSegmentForMerge(org.apache.lucene.index.SegmentCommitInfo info)
    Determines if a SegmentCommitInfo should be part of the candidate set of segments that will be considered for merges.
    org.apache.lucene.index.MergePolicy.MergeSpecification
    findForcedDeletesMerges(org.apache.lucene.index.SegmentInfos infos, org.apache.lucene.index.MergePolicy.MergeContext mergeContext)
     
    org.apache.lucene.index.MergePolicy.MergeSpecification
    findForcedMerges(org.apache.lucene.index.SegmentInfos infos, int maxSegmentCount, Map<org.apache.lucene.index.SegmentCommitInfo,Boolean> segmentsToMerge, org.apache.lucene.index.MergePolicy.MergeContext mergeContext)
     
    org.apache.lucene.index.MergePolicy.MergeSpecification
    findFullFlushMerges(org.apache.lucene.index.MergeTrigger mergeTrigger, org.apache.lucene.index.SegmentInfos infos, org.apache.lucene.index.MergePolicy.MergeContext mergeContext)
     
    org.apache.lucene.index.MergePolicy.MergeSpecification
    findMerges(org.apache.lucene.index.MergeTrigger mergeTrigger, org.apache.lucene.index.SegmentInfos infos, org.apache.lucene.index.MergePolicy.MergeContext mergeContext)
     

    Methods inherited from class org.apache.lucene.index.FilterMergePolicy

    findMerges, getMaxCFSSegmentSizeMB, getNoCFSRatio, keepFullyDeletedSegment, maxFullFlushMergeSize, numDeletesToMerge, setMaxCFSSegmentSizeMB, setNoCFSRatio, size, toString, unwrap, useCompoundFile

    Methods inherited from class org.apache.lucene.index.MergePolicy

    assertDelCount, isMerged, message, segString, verbose

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • LatestVersionMergePolicy

      public LatestVersionMergePolicy(org.apache.lucene.index.MergePolicy in)
  • Method Details

    • findMerges

      public org.apache.lucene.index.MergePolicy.MergeSpecification findMerges(org.apache.lucene.index.MergeTrigger mergeTrigger, org.apache.lucene.index.SegmentInfos infos, org.apache.lucene.index.MergePolicy.MergeContext mergeContext) throws IOException
      Overrides:
      findMerges in class org.apache.lucene.index.FilterMergePolicy
      Throws:
      IOException
    • findForcedMerges

      public org.apache.lucene.index.MergePolicy.MergeSpecification findForcedMerges(org.apache.lucene.index.SegmentInfos infos, int maxSegmentCount, Map<org.apache.lucene.index.SegmentCommitInfo,Boolean> segmentsToMerge, org.apache.lucene.index.MergePolicy.MergeContext mergeContext) throws IOException
      Overrides:
      findForcedMerges in class org.apache.lucene.index.FilterMergePolicy
      Throws:
      IOException
    • findForcedDeletesMerges

      public org.apache.lucene.index.MergePolicy.MergeSpecification findForcedDeletesMerges(org.apache.lucene.index.SegmentInfos infos, org.apache.lucene.index.MergePolicy.MergeContext mergeContext) throws IOException
      Overrides:
      findForcedDeletesMerges in class org.apache.lucene.index.FilterMergePolicy
      Throws:
      IOException
    • findFullFlushMerges

      public org.apache.lucene.index.MergePolicy.MergeSpecification findFullFlushMerges(org.apache.lucene.index.MergeTrigger mergeTrigger, org.apache.lucene.index.SegmentInfos infos, org.apache.lucene.index.MergePolicy.MergeContext mergeContext) throws IOException
      Overrides:
      findFullFlushMerges in class org.apache.lucene.index.FilterMergePolicy
      Throws:
      IOException
    • allowSegmentForMerge

      protected boolean allowSegmentForMerge(org.apache.lucene.index.SegmentCommitInfo info)
      Determines if a SegmentCommitInfo should be part of the candidate set of segments that will be considered for merges. By default, we only allow LATEST version segments to participate in merges.