Table of Contents

Public classSealed SegmentMerger

Namespace
Rowles.LeanLucene.Index.Segment
Assembly
Rowles.LeanLucene.dll

Tiered merge policy. When the number of segments at a given size tier exceeds a configurable threshold, the smallest segments in that tier are merged into one. Old segments are removed only after the merged segment is fully committed.

public sealed class SegmentMerger
SegmentMerger

Public constructor SegmentMerger(MMapDirectory, int, int, IMetricsCollector?)

Initialises a merger bound to the given directory.

Public field DefaultMergeThreshold

Default merge threshold: when this many segments exist, merge.

Public field DefaultSkipInterval

Default postings skip interval.

Internal methodInternal CleanupSegmentFiles(SegmentInfo)

Public method MaybeMerge(List<SegmentInfo>, ref int)

Checks if a merge is needed and performs it. Returns the updated segment list.

Public method MaybeMerge(List<SegmentInfo>, ref int, IReadOnlySet<string>)

Checks if a merge is needed and performs it, excluding segments protected by held snapshots.