← 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.