Home/Benchmarks

Measured, not guessed.

Every result here comes from code that was actually run on real data. Each benchmark shows what was tested, on what, and how to reproduce it.

  • 7benchmarks
  • 67measured configurations
  • 6topics
Featured

Hybrid search: BM25 + vectors, alpha swept 0 to 1

No single retriever wins everywhere. Pure BM25 beat pure vectors on exact code identifiers (0.772 vs 0.279 MRR). Pure vectors beat BM25 on paraphrased questions (0.768 vs 0.566). An RRF blend at alpha 0.8 kept all three query styles above 0.72.

See the full results
MRR by fusion weight (alpha = BM25 share)↑ higher is better
0.000.250.500.751.00MRR0.00.20.40.50.60.80.91.0alphaheading MRR, 0.0: 0.491heading MRR, 0.2: 0.581heading MRR, 0.4: 0.642heading MRR, 0.5: 0.679heading MRR, 0.6: 0.71heading MRR, 0.8: 0.782heading MRR, 0.9: 0.813heading MRR, 1.0: 0.859identifier MRR, 0.0: 0.279identifier MRR, 0.2: 0.471identifier MRR, 0.4: 0.569identifier MRR, 0.5: 0.696identifier MRR, 0.6: 0.735identifier MRR, 0.8: 0.753identifier MRR, 0.9: 0.768identifier MRR, 1.0: 0.772paraphrase MRR, 0.0: 0.768paraphrase MRR, 0.2: 0.794paraphrase MRR, 0.4: 0.806paraphrase MRR, 0.5: 0.751paraphrase MRR, 0.6: 0.731paraphrase MRR, 0.8: 0.722paraphrase MRR, 0.9: 0.678paraphrase MRR, 1.0: 0.566
  • heading MRR
  • identifier MRR
  • paraphrase MRR

How these are made

  • Run, then write. Each number comes from a script that was executed before the post was published.
  • Setup on the page. Hardware, library versions, dataset and query counts are listed with every result.
  • Reproducible. Scripts and raw output are linked, so you can rerun them or disagree with them.
  • Dated. Results are tied to the versions tested. When something is re-run, the date changes.

Want something measured? Suggest a benchmark.