miroir/tests/benches/score-comparability
jedarden 064a33ce1c miroir-zc2.5: Fix dump import compatibility matrix enhancement bead refs
The matrix incorrectly referenced miroir-zc2.6/7/8 as dump import
enhancement beads, but zc2.6 is actually arm64 support and zc2.7/8
don't exist. Replaced with a descriptive "Future Enhancements" table
that maintains traceability without false bead dependencies.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Bead-Id: miroir-zc2.5
Bead-Id: miroir-r3j.6
Bead-Id: bf-1p4v
2026-05-20 07:18:56 -04:00
..
corpus miroir-zc2.5: Fix dump import compatibility matrix enhancement bead refs 2026-05-20 07:18:56 -04:00
queries miroir-zc2.5: Fix dump import compatibility matrix enhancement bead refs 2026-05-20 07:18:56 -04:00
results miroir-zc2.5: Fix dump import compatibility matrix enhancement bead refs 2026-05-20 07:18:56 -04:00
README.md miroir-zc2.5: Fix dump import compatibility matrix enhancement bead refs 2026-05-20 07:18:56 -04:00
simulate.py miroir-zc2.5: Fix dump import compatibility matrix enhancement bead refs 2026-05-20 07:18:56 -04:00

Score Comparability Benchmark

Tests whether _rankingScore values from different shards are comparable when documents are distributed unevenly across shards.

Problem Statement

Meilisearch's ranking pipeline computes scores using local statistics (term frequency, document frequency). When shards have very different document distributions, identical queries may return scores that aren't directly comparable, leading to incorrect merged rankings.

Experiment Design

  1. Ground truth: Single Meilisearch index with all documents
  2. Distributed setup: Same documents sharded across N nodes with intentional skew
  3. Measurement: Kendall tau (τ) between merged distributed results and ground truth
  4. Pass criterion: τ ≥ 0.95 on average across 10k random queries

Corpus Structure

  • 100,000 documents total
  • 10 shards (shard 0 = normal, shard 1 = 100× normal, shard 9 = 0.01× normal)
  • Documents have: id, title, content (synthetic text), category (for filtering)
  • 50 unique terms distributed across documents with varying frequencies

Directory Layout

  • corpus/: Test document sets (JSONL)
  • queries/: Generated query sets for experiments
  • results/: Experimental results and analysis

Running Experiments

See individual experiment scripts in results/ directories.