org.apache.lucene.index

## Class MergePolicyWrapper

- java.lang.Object
- - org.apache.lucene.index.MergePolicy
  - - org.apache.lucene.index.MergePolicyWrapper

- Direct Known Subclasses:
    OneMergeWrappingMergePolicy, UpgradeIndexMergePolicy

      public class MergePolicyWrapper
      extends MergePolicy

  A wrapper for `MergePolicy` instances.
  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.MergeException, MergePolicy.MergeSpecification, MergePolicy.OneMerge, MergePolicy.OneMergeProgress`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected MergePolicy` | `in` The wrapped `MergePolicy`.

    - ### 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
    `MergePolicyWrapper(MergePolicy in)` Creates a new merge policy instance.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `MergePolicy.MergeSpecification` | `findForcedDeletesMerges(SegmentInfos segmentInfos, IndexWriter writer)` 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, IndexWriter writer)` Determine what set of merge operations is necessary in order to merge to `<=` the specified segment count.
    `MergePolicy.MergeSpecification` | `findMerges(MergeTrigger mergeTrigger, SegmentInfos segmentInfos, IndexWriter writer)` Determine what set of merge operations are now necessary on the index.
    `double` | `getNoCFSRatio()` Returns current `noCFSRatio`.
    `void` | `setMaxCFSSegmentSizeMB(double v)` If a merged segment will be more than this value, leave the segment as non-compound file even if compound file is enabled.
    `void` | `setNoCFSRatio(double noCFSRatio)` If a merged segment will be more than this percentage of the total size of the index, leave the segment as non-compound file even if compound file is enabled.
    `protected long` | `size(SegmentCommitInfo info, IndexWriter writer)` Return the byte size of the provided `SegmentCommitInfo`, pro-rated by percentage of non-deleted documents is set.
    `String` | `toString()`
    `boolean` | `useCompoundFile(SegmentInfos infos, SegmentCommitInfo mergedInfo, IndexWriter writer)` Returns true if a new segment (regardless of its origin) should use the compound file format.

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

      `getMaxCFSSegmentSizeMB, isMerged`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### in

          protected final MergePolicy in

      The wrapped `MergePolicy`.

  - ### Constructor Detail

    - #### MergePolicyWrapper

          public MergePolicyWrapper(MergePolicy in)

      Creates a new merge policy instance.
      Parameters:
        `in` - the wrapped `MergePolicy`

  - ### Method Detail

    - #### findMerges

          public MergePolicy.MergeSpecification findMerges(MergeTrigger mergeTrigger,
                                                           SegmentInfos segmentInfos,
                                                           IndexWriter writer)
                                                    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.
      Specified by:
        `findMerges` in class `MergePolicy`
      Parameters:
        `mergeTrigger` - the event that triggered the merge
        `segmentInfos` - the total set of segments in the index
        `writer` - the IndexWriter to find the merges on
      Throws:
        `IOException`

    - #### findForcedMerges

          public MergePolicy.MergeSpecification findForcedMerges(SegmentInfos segmentInfos,
                                                                 int maxSegmentCount,
                                                                 Map<SegmentCommitInfo,Boolean> segmentsToMerge,
                                                                 IndexWriter writer)
                                                          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.
      Specified by:
        `findForcedMerges` in class `MergePolicy`
      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.
        `writer` - the IndexWriter to find the merges on
      Throws:
        `IOException`

    - #### findForcedDeletesMerges

          public MergePolicy.MergeSpecification findForcedDeletesMerges(SegmentInfos segmentInfos,
                                                                        IndexWriter writer)
                                                                 throws IOException

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

    - #### useCompoundFile

          public boolean useCompoundFile(SegmentInfos infos,
                                         SegmentCommitInfo mergedInfo,
                                         IndexWriter writer)
                                  throws IOException

      Description copied from class: `MergePolicy`
      Returns true if a new segment (regardless of its origin) should use the compound file format. The default implementation returns `true` iff the size of the given mergedInfo is less or equal to `MergePolicy.getMaxCFSSegmentSizeMB()` and the size is less or equal to the TotalIndexSize * `MergePolicy.getNoCFSRatio()` otherwise `false`.
      Overrides:
        `useCompoundFile` in class `MergePolicy`
      Throws:
        `IOException`

    - #### size

          protected long size(SegmentCommitInfo info,
                              IndexWriter writer)
                       throws IOException

      Description copied from class: `MergePolicy`
      Return the byte size of the provided `SegmentCommitInfo`, pro-rated by percentage of non-deleted documents is set.
      Overrides:
        `size` in class `MergePolicy`
      Throws:
        `IOException`

    - #### getNoCFSRatio

          public double getNoCFSRatio()

      Description copied from class: `MergePolicy`
      Returns current `noCFSRatio`.
      Overrides:
        `getNoCFSRatio` in class `MergePolicy`
      See Also:
        `MergePolicy.setNoCFSRatio(double)`

    - #### setNoCFSRatio

          public final void setNoCFSRatio(double noCFSRatio)

      Description copied from class: `MergePolicy`
      If a merged segment will be more than this percentage of the total size of the index, leave the segment as non-compound file even if compound file is enabled. Set to 1.0 to always use CFS regardless of merge size.
      Overrides:
        `setNoCFSRatio` in class `MergePolicy`

    - #### setMaxCFSSegmentSizeMB

          public final void setMaxCFSSegmentSizeMB(double v)

      Description copied from class: `MergePolicy`
      If a merged segment will be more than this value, leave the segment as non-compound file even if compound file is enabled. Set this to Double.POSITIVE_INFINITY (default) and noCFSRatio to 1.0 to always use CFS regardless of merge size.
      Overrides:
        `setMaxCFSSegmentSizeMB` in class `MergePolicy`

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

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