7/9/2026 · Rustam Nassyrov, Noah Rizika, Lea Wang-Tomic
What this post added
Introduced the V3 sparse index with a term-major layout, replacing the previous document-major layout. This change reduces I/O by allowing queries to load only relevant term blocks. Implemented an in-memory term directory using Elias-Fano encoding for O(1) term lookups. Added metadata blocks per term for efficient pre-load skipping decisions. Enhanced compression for posting blocks by storing document ID offsets and using per-term score quantization. These optimizations resulted in significant reductions in data loaded per query (up to 151x for SPLADE, 1428x for BM25) and faster query latencies (up to 27x for SPLADE, 119x for BM25) when indexes are not fully resident in memory, while maintaining or improving recall.