Explanations
Deeper dives into how chops-search works under the hood, and why it's built the way it is.
- The model is a file you read offsets from — Why a model2vec lookup table can be range-fetched row by row, and the four loading disciplines that make a query cost 0.1 KB.
- How ranking works — BM25 over pre-WordPiece tokens, cosine over embedded chunks, reciprocal rank fusion, and the relevance floor that makes empty results possible.
- One tokenizer, enforced structurally — Why the engine is one Rust core compiled twice, and the parity tests that pin the tokenizer and embeddings to the reference implementation.
- When it breaks, it says so — The failure modes partial loading creates, and why chops-search degrades to keyword-only or eager loading instead of returning plausible garbage.