← Docs

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.