Hybrid recall (BM25 + vector)
Search inside the vault uses two indexes — lexical (Tantivy/BM25) and semantic (vector embeddings) — and fuses their results with Reciprocal Rank Fusion. Either alone misses things; together they catch most queries.
Use it
Returns chunks (typically H2-bounded sections) ranked by combined score, with a snippet and the originating file path.
The two indexes
Lexical
— Tantivy BM25 tokenizer, good at exact matches, names, code
Vector
— fastembed (gated under the embed feature). Stored in plain SQLite with a cosine table; no native vector extension required.
RRF fusion
Reciprocal Rank Fusion needs no calibration between scores — it just trusts ranks. That keeps it robust when the vector model is swapped out (different score distributions).
Indexing
The watcher reindexes incrementally on every save. To force a full rebuild: mddock reindex.
Related