Class LogDocMergePolicy


public class LogDocMergePolicy extends LogMergePolicy
This is a LogMergePolicy that measures size of a segment as the number of documents (not taking deletions into account).
  • Field Details

    • DEFAULT_MIN_MERGE_DOCS

      public static final int DEFAULT_MIN_MERGE_DOCS
      Default minimum segment size. @see setMinMergeDocs
      See Also:
  • Constructor Details

    • LogDocMergePolicy

      public LogDocMergePolicy()
      Sole constructor, setting all settings to their defaults.
  • Method Details

    • size

      protected long size(SegmentCommitInfo info, MergePolicy.MergeContext mergeContext) throws IOException
      Description copied from class: MergePolicy
      Return the byte size of the provided SegmentCommitInfo, pro-rated by percentage of non-deleted documents is set.
      Overrides:
      size in class MergePolicy
      Throws:
      IOException
    • setMinMergeDocs

      public void setMinMergeDocs(int minMergeDocs)
      Sets the minimum size for the lowest level segments. Any segments below this size are considered to be on the same level (even if they vary drastically in size) and will be merged whenever there are mergeFactor of them. This effectively truncates the "long tail" of small segments that would otherwise be created into a single level. If you set this too large, it could greatly increase the merging cost during indexing (if you flush many small segments).
    • getMinMergeDocs

      public int getMinMergeDocs()
      Get the minimum size for a segment to remain un-merged.
      See Also: