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
`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`