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.