在 Lucene 中,“葉子段”(LeafReaderContext)和 “segment”(物理段)在 Lucene 語境下,LeafReaderContext ≈ segment 的運行時只讀視圖。
概念 所在層次 含義 是否一一對應?
segment 物理存儲層 Lucene 索引在磁盤上被拆分為多個段(每個段一個 `_X` 命名的文件集)。每個 segment 是一個完整的倒排索引子集,包含倒排表、存儲字段、DocValue 等。 ? 一對一?
LeafReaderContext 邏輯讀取層 對應一個 只讀、不可變 的 `LeafReader`,它正好包裝了 一個 segment。`DirectoryReader` 打開后,`leaves()` 返回的每個 `LeafReaderContext` 就對應磁盤上的一個 segment。 ? 一對一?
?
? 結論
?
> 在 Lucene 語境下,LeafReaderContext ≈ segment 的運行時只讀視圖。
?
因此,`IndexReader.leaves()` 拿到的每個 LeafReaderContext 就等價于磁盤上的一個 segment,只是前者提供了 docBase 偏移、只讀 API 等運行時信息,方便上層并行搜索與合并結果。