Package org.apache.lucene.sandbox.index

# Class MergeOnFlushMergePolicy

java.lang.Object
org.apache.lucene.index.MergePolicy
org.apache.lucene.index.FilterMergePolicy
org.apache.lucene.sandbox.index.MergeOnFlushMergePolicy

All Implemented Interfaces:
  `Unwrappable<MergePolicy>`

public class MergeOnFlushMergePolicy extends FilterMergePolicy
A simple extension to wrap `MergePolicy` to merge all tiny segments (or at least segments smaller than specified in `setSmallSegmentThresholdMB(double)` into one segment on commit.

- ## 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
  Description
  `MergeOnFlushMergePolicy(MergePolicy mergePolicy)`
  Creates a MergeOnFlushMergePolicy merge policy instance wrapping another.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `MergePolicy.MergeSpecification`
  `findFullFlushMerges(MergeTrigger mergeTrigger, SegmentInfos segmentInfos, MergePolicy.MergeContext mergeContext)`
  `double`
  `getSmallSegmentThresholdMB()`
  `void`
  `setSmallSegmentThresholdMB(double smallSegmentThresholdMB)`

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

  `findForcedDeletesMerges, findForcedMerges, findMerges, 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

  - ### MergeOnFlushMergePolicy

    public MergeOnFlushMergePolicy(MergePolicy mergePolicy)
    Creates a MergeOnFlushMergePolicy merge policy instance wrapping another.
    Parameters:
      `mergePolicy` - the wrapped `MergePolicy`

- ## Method Details

  - ### getSmallSegmentThresholdMB

    public double getSmallSegmentThresholdMB()

  - ### setSmallSegmentThresholdMB

    public void setSmallSegmentThresholdMB(double smallSegmentThresholdMB)
    Parameters:
      `smallSegmentThresholdMB` - all segments smaller than this will be merged into a single segment before commit completes.

  - ### findFullFlushMerges

    public MergePolicy.MergeSpecification findFullFlushMerges(MergeTrigger mergeTrigger, SegmentInfos segmentInfos, MergePolicy.MergeContext mergeContext) throws IOException
    Overrides:
      `findFullFlushMerges` in class `FilterMergePolicy`
    Throws:
      `IOException`