Table of Contents

Writer configuration

IndexWriterConfig exposes the knobs that affect buffering, merging, compression, and analysis.

Common settings

var config = new IndexWriterConfig
{
    DefaultAnalyser = new StandardAnalyser(),
    RamBufferSizeMB = 256.0,
    MaxBufferedDocs = 10_000,
    MaxQueuedDocs   = 20_000,
    MergeThreshold  = 10,
    DurableCommits  = true,
    CompressionPolicy = FieldCompressionPolicy.Lz4,
    StoredFieldBlockSize = 16,
};

Defaults

Setting Default
RamBufferSizeMB 256.0
MaxBufferedDocs 10_000
MaxQueuedDocs 20_000
DefaultAnalyser StandardAnalyser
Similarity Bm25Similarity.Instance
DeletionPolicy KeepLatestCommitPolicy
DurableCommits true
CompressionPolicy Lz4
StoredFieldBlockSize 16
PostingsSkipInterval 128
MergeThreshold 10
BKDMaxLeafSize 512
MaxTokensPerDocument 0 (unlimited)
TokenBudgetPolicy Truncate
Metrics NullMetricsCollector.Instance

What each knob affects

  • RamBufferSizeMB / MaxBufferedDocs: in-memory buffer before a flush.
  • MergeThreshold: number of segments before a background merge runs.
  • DurableCommits: when true, fsyncs before declaring a commit successful.
  • Schema: optional IndexSchema; rejects bad documents at AddDocument time.

See also