org.apache.lucene.index

## Class MergePolicy.OneMerge

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

- Enclosing class:
    MergePolicy

      public static class MergePolicy.OneMerge
      extends Object

  OneMerge provides the information necessary to perform an individual primitive merge operation, resulting in a single new segment. The merge spec includes the subset of segments to be merged as well as whether the new segment should use the compound file format.
  WARNING: This API is experimental and might change in incompatible ways in the next release.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `long` | `estimatedMergeBytes` Estimated size in bytes of the merged segment.
    `List<SegmentCommitInfo>` | `segments` Segments to be merged.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `OneMerge(List<SegmentCommitInfo> segments)` Sole constructor.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `checkAborted()` Checks if merge has been aborted and throws a merge exception if so.
    `SegmentCommitInfo` | `getMergeInfo()` Returns the `SegmentCommitInfo` for the merged segment, or null if it hasn't been set yet.
    `MergePolicy.OneMergeProgress` | `getMergeProgress()` Returns a `MergePolicy.OneMergeProgress` instance for this merge, which provides statistics of the merge threads (run time vs.
    `MergeInfo` | `getStoreMergeInfo()` Return `MergeInfo` describing this merge.
    `boolean` | `isAborted()` Returns true if this merge was or should be aborted.
    `void` | `mergeFinished(boolean success, boolean segmentDropped)` Called by `IndexWriter` after the merge is done and all readers have been closed.
    `void` | `mergeInit()` Called by `IndexWriter` after the merge started and from the thread that will be executing the merge.
    `String` | `segString()` Returns a readable description of the current merge state.
    `void` | `setAborted()` Marks this merge as aborted.
    `void` | `setMergeInfo(SegmentCommitInfo info)` Expert: Sets the `SegmentCommitInfo` of the merged segment.
    `long` | `totalBytesSize()` Returns the total size in bytes of this merge.
    `int` | `totalNumDocs()` Returns the total number of documents that are included with this merge.
    `CodecReader` | `wrapForMerge(CodecReader reader)` Wrap the reader in order to add/remove information to the merged segment.

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

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

- - ### Field Detail

    - #### estimatedMergeBytes

          public volatile long estimatedMergeBytes

      Estimated size in bytes of the merged segment.

    - #### segments

          public final List<SegmentCommitInfo> segments

      Segments to be merged.

  - ### Constructor Detail

    - #### OneMerge

          public OneMerge(List<SegmentCommitInfo> segments)

      Sole constructor.
      Parameters:
        `segments` - List of `SegmentCommitInfo`s to be merged.

  - ### Method Detail

    - #### mergeInit

          public void mergeInit()
                         throws IOException

      Called by `IndexWriter` after the merge started and from the thread that will be executing the merge.
      Throws:
        `IOException`

    - #### mergeFinished

          public void mergeFinished(boolean success,
                                    boolean segmentDropped)
                             throws IOException

      Called by `IndexWriter` after the merge is done and all readers have been closed.
      Parameters:
        `success` - true iff the merge finished successfully ie. was committed
        `segmentDropped` - true iff the merged segment was dropped since it was fully deleted
      Throws:
        `IOException`

    - #### wrapForMerge

          public CodecReader wrapForMerge(CodecReader reader)
                                   throws IOException

      Wrap the reader in order to add/remove information to the merged segment.
      Throws:
        `IOException`

    - #### setMergeInfo

          public void setMergeInfo(SegmentCommitInfo info)

      Expert: Sets the `SegmentCommitInfo` of the merged segment. Allows sub-classes to e.g. set diagnostics properties.

    - #### getMergeInfo

          public SegmentCommitInfo getMergeInfo()

      Returns the `SegmentCommitInfo` for the merged segment, or null if it hasn't been set yet.

    - #### segString

          public String segString()

      Returns a readable description of the current merge state.

    - #### totalBytesSize

          public long totalBytesSize()

      Returns the total size in bytes of this merge. Note that this does not indicate the size of the merged segment, but the input total size. This is only set once the merge is initialized by IndexWriter.

    - #### totalNumDocs

          public int totalNumDocs()

      Returns the total number of documents that are included with this merge. Note that this does not indicate the number of documents after the merge.

    - #### getStoreMergeInfo

          public MergeInfo getStoreMergeInfo()

      Return `MergeInfo` describing this merge.

    - #### isAborted

          public boolean isAborted()

      Returns true if this merge was or should be aborted.

    - #### setAborted

          public void setAborted()

      Marks this merge as aborted. The merge thread should terminate at the soonest possible moment.

    - #### checkAborted

          public void checkAborted()
                            throws MergePolicy.MergeAbortedException

      Checks if merge has been aborted and throws a merge exception if so.
      Throws:
        `MergePolicy.MergeAbortedException`

    - #### getMergeProgress

          public MergePolicy.OneMergeProgress getMergeProgress()

      Returns a `MergePolicy.OneMergeProgress` instance for this merge, which provides statistics of the merge threads (run time vs. sleep time) if merging is throttled.

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