org.apache.lucene.index

## Class OneMergeWrappingMergePolicy

- java.lang.Object
- - org.apache.lucene.index.MergePolicy
  - - org.apache.lucene.index.FilterMergePolicy
    - - org.apache.lucene.index.OneMergeWrappingMergePolicy

- Direct Known Subclasses:
    SoftDeletesRetentionMergePolicy

      public class OneMergeWrappingMergePolicy
      extends FilterMergePolicy

  A wrapping merge policy that wraps the `MergePolicy.OneMerge` objects returned by the wrapped merge policy.
  WARNING: This API is experimental and might change in incompatible ways in the next release.

- - ### Nested Class Summary

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

      `MergePolicy.MergeAbortedException, MergePolicy.MergeContext, MergePolicy.MergeException, MergePolicy.MergeSpecification, MergePolicy.OneMerge, 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 and Description
    `OneMergeWrappingMergePolicy(MergePolicy in, UnaryOperator<MergePolicy.OneMerge> wrapOneMerge)` Constructor

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `MergePolicy.MergeSpecification` | `findForcedDeletesMerges(SegmentInfos segmentInfos, MergePolicy.MergeContext mergeContext)` Determine what set of merge operations is necessary in order to expunge all deletes from the index.
    `MergePolicy.MergeSpecification` | `findForcedMerges(SegmentInfos segmentInfos, int maxSegmentCount, Map<SegmentCommitInfo,Boolean> segmentsToMerge, MergePolicy.MergeContext mergeContext)` Determine what set of merge operations is necessary in order to merge to `<=` the specified segment count.
    `MergePolicy.MergeSpecification` | `findMerges(MergeTrigger mergeTrigger, SegmentInfos segmentInfos, MergePolicy.MergeContext mergeContext)` Determine what set of merge operations are now necessary on the index.

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

      `getMaxCFSSegmentSizeMB, getNoCFSRatio, keepFullyDeletedSegment, numDeletesToMerge, setMaxCFSSegmentSizeMB, setNoCFSRatio, size, toString, 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 Detail

    - #### OneMergeWrappingMergePolicy

          public OneMergeWrappingMergePolicy(MergePolicy in,
                                             UnaryOperator<MergePolicy.OneMerge> wrapOneMerge)

      Constructor
      Parameters:
        `in` - - the wrapped merge policy
        `wrapOneMerge` - - operator for wrapping OneMerge objects

  - ### Method Detail

    - #### findMerges

          public MergePolicy.MergeSpecification findMerges(MergeTrigger mergeTrigger,
                                                           SegmentInfos segmentInfos,
                                                           MergePolicy.MergeContext mergeContext)
                                                    throws IOException

      Description copied from class: `MergePolicy`
      Determine what set of merge operations are now necessary on the index. `IndexWriter` calls this whenever there is a change to the segments. This call is always synchronized on the `IndexWriter` instance so only one thread at a time will call this method.
      Overrides:
        `findMerges` in class `FilterMergePolicy`
      Parameters:
        `mergeTrigger` - the event that triggered the merge
        `segmentInfos` - the total set of segments in the index
        `mergeContext` - the IndexWriter to find the merges on
      Throws:
        `IOException`

    - #### findForcedMerges

          public MergePolicy.MergeSpecification findForcedMerges(SegmentInfos segmentInfos,
                                                                 int maxSegmentCount,
                                                                 Map<SegmentCommitInfo,Boolean> segmentsToMerge,
                                                                 MergePolicy.MergeContext mergeContext)
                                                          throws IOException

      Description copied from class: `MergePolicy`
      Determine what set of merge operations is necessary in order to merge to `<=` the specified segment count. `IndexWriter` calls this when its `IndexWriter.forceMerge(int)` method is called. This call is always synchronized on the `IndexWriter` instance so only one thread at a time will call this method.
      Overrides:
        `findForcedMerges` in class `FilterMergePolicy`
      Parameters:
        `segmentInfos` - the total set of segments in the index
        `maxSegmentCount` - requested maximum number of segments in the index (currently this is always 1)
        `segmentsToMerge` - contains the specific SegmentInfo instances that must be merged away. This may be a subset of all SegmentInfos. If the value is True for a given SegmentInfo, that means this segment was an original segment present in the to-be-merged index; else, it was a segment produced by a cascaded merge.
        `mergeContext` - the IndexWriter to find the merges on
      Throws:
        `IOException`

    - #### findForcedDeletesMerges

          public MergePolicy.MergeSpecification findForcedDeletesMerges(SegmentInfos segmentInfos,
                                                                        MergePolicy.MergeContext mergeContext)
                                                                 throws IOException

      Description copied from class: `MergePolicy`
      Determine what set of merge operations is necessary in order to expunge all deletes from the index.
      Overrides:
        `findForcedDeletesMerges` in class `FilterMergePolicy`
      Parameters:
        `segmentInfos` - the total set of segments in the index
        `mergeContext` - the IndexWriter to find the merges on
      Throws:
        `IOException`

Copyright © 2000-2020 Apache Software Foundation. All Rights Reserved.