org.apache.lucene.index

## Class NoMergePolicy

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

- All Implemented Interfaces:
    Closeable, AutoCloseable, Cloneable

      public final class NoMergePolicy
      extends MergePolicy

  A `MergePolicy` which never returns merges to execute (hence it's name). It is also a singleton and can be accessed through `NO_COMPOUND_FILES` if you want to indicate the index does not use compound files, or through `COMPOUND_FILES` otherwise. Use it if you want to prevent an `IndexWriter` from ever executing merges, without going through the hassle of tweaking a merge policy's settings to achieve that, such as changing its merge factor.

- - ### Nested Class Summary

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

      `MergePolicy.MergeAbortedException, MergePolicy.MergeException, MergePolicy.MergeSpecification, MergePolicy.MergeTrigger, MergePolicy.OneMerge`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static MergePolicy` | `COMPOUND_FILES` A singleton `NoMergePolicy` which indicates the index uses compound files.
    `static MergePolicy` | `NO_COMPOUND_FILES` A singleton `NoMergePolicy` which indicates the index does not use compound files.

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

      `writer`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close()` Release all resources for the policy.
    `MergePolicy.MergeSpecification` | `findForcedDeletesMerges(SegmentInfos segmentInfos)` 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<SegmentInfoPerCommit,Boolean> segmentsToMerge)` Determine what set of merge operations is necessary in order to merge to <= the specified segment count.
    `MergePolicy.MergeSpecification` | `findMerges(MergePolicy.MergeTrigger mergeTrigger, SegmentInfos segmentInfos)` Determine what set of merge operations are now necessary on the index.
    `void` | `setIndexWriter(IndexWriter writer)` Sets the `IndexWriter` to use by this merge policy.
    `String` | `toString()`
    `boolean` | `useCompoundFile(SegmentInfos segments, SegmentInfoPerCommit newSegment)` 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

      `clone`

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

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

- - ### Field Detail

    - #### NO_COMPOUND_FILES

          public static final MergePolicy NO_COMPOUND_FILES

      A singleton `NoMergePolicy` which indicates the index does not use compound files.

    - #### COMPOUND_FILES

          public static final MergePolicy COMPOUND_FILES

      A singleton `NoMergePolicy` which indicates the index uses compound files.

  - ### Method Detail

    - #### close

          public void close()

      Description copied from class: `MergePolicy`
      Release all resources for the policy.
      Specified by:
        `close` in interface `Closeable`
      Specified by:
        `close` in interface `AutoCloseable`
      Specified by:
        `close` in class `MergePolicy`

    - #### findMerges

          public MergePolicy.MergeSpecification findMerges(MergePolicy.MergeTrigger mergeTrigger,
                                                  SegmentInfos segmentInfos)

      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

    - #### findForcedMerges

          public MergePolicy.MergeSpecification findForcedMerges(SegmentInfos segmentInfos,
                                                        int maxSegmentCount,
                                                        Map<SegmentInfoPerCommit,Boolean> segmentsToMerge)

      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.

    - #### findForcedDeletesMerges

          public MergePolicy.MergeSpecification findForcedDeletesMerges(SegmentInfos segmentInfos)

      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

    - #### useCompoundFile

          public boolean useCompoundFile(SegmentInfos segments,
                                SegmentInfoPerCommit newSegment)

      Description copied from class: `MergePolicy`
      Returns true if a new segment (regardless of its origin) should use the compound file format.
      Specified by:
        `useCompoundFile` in class `MergePolicy`

    - #### setIndexWriter

          public void setIndexWriter(IndexWriter writer)

      Description copied from class: `MergePolicy`
      Sets the `IndexWriter` to use by this merge policy. This method is allowed to be called only once, and is usually set by IndexWriter. If it is called more than once, `SetOnce.AlreadySetException` is thrown.
      Overrides:
        `setIndexWriter` in class `MergePolicy`
      See Also:
        `SetOnce`

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

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