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 Details

    • estimatedMergeBytes

      public volatile long estimatedMergeBytes
      Estimated size in bytes of the merged segment.
    • segments

      public final List<SegmentCommitInfo> segments
      Segments to be merged.
  • Constructor Details

  • Method Details

    • 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. add diagnostic 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.