Retrieval Lab

50 configurations · 400 queries · 22 documents. Ranked on your query set — never “best” in the abstract; a thin or biased query set biases the winner.

Best on your query set
0.99
hit@k [0.98–1.00] · MRR 0.88
e5 · parent-child 800x200 · dense · rerank ce

Can you trust this comparison? Checks passed

The labeled-query sample is large enough for an aggregate comparison, and the retrieval baseline is working. Results still apply only to this corpus and query set.

How to read this report
Hit@k — was the evidence found?

The share of labeled queries whose answer evidence was covered by the final top-k chunks. Higher is better.

Answer rank (MRR) — how early?

Rewards placing the complete answer near the top. 1.00 means it was always complete at rank 1.

95% confidence range — how certain?

The plausible range around hit@k from this query sample. More labeled queries usually make it narrower.

Fragile hit — worked across pieces

No single chunk covered enough evidence; several returned chunks did so together. Small chunking changes may break it.

Candidates vs. top-k

Candidates are the larger shortlist retrieved first. Top-k is the smaller final set delivered after fusion or reranking.

Token budget — context limit

An optional cap on whole retrieved chunks sent onward. It compares configs at a similar context cost.

Where a missed answer was first lost

Each miss is counted once, at the earliest pipeline stage that could no longer cover the labeled answer evidence.

Representation — the answer text isn't in any chunk — ingestion lost it ANN approximation — exact dense search found it, but the HNSW approximation did not Not retrieved — neither dense nor sparse fetched it into the candidates Fusion drop — candidates had it, but combining dense + sparse lost it Reranker demotion — the reranker reordered it out of the top-k Final cutoff — retrieved and ranked, but it landed just past the top-k Budget cutoff — it was in the top-k, but the token budget dropped it

Use the filters to narrow a large sweep; the default view is the top 15 by hit@k. Switch to All matching to page through the rest.

Ranked configurations

Showing top 15 of 50 configurations.
configurationhit@kMRRwhere the misses were lost
BESTe5 parent-child 800x200 dense EXACT index rerank ce
0.99 [0.98–1.00]
0.88 [0.85–0.90]
Not retrieved 1 Reranker demotion 2 1 fragile
2e5 parent-child 800x200 hybrid EXACT index rerank ce
0.99 [0.97–1.00]
0.88 [0.85–0.90]
Fusion drop 1 Reranker demotion 3 1 fragile
3bge parent-child 800x200 hybrid EXACT index rerank ce
0.98 [0.97–0.99]
0.88 [0.85–0.90]
Fusion drop 2 Reranker demotion 4 1 fragile
4bge parent-child 800x200 dense EXACT index rerank ce
0.98 [0.97–0.99]
0.87 [0.85–0.90]
Not retrieved 3 Reranker demotion 3 1 fragile
5e5 parent-child 800x200 dense EXACT index
0.98 [0.96–0.99]
0.83 [0.80–0.85]
Not retrieved 1 Final cutoff 8 1 fragile
6bge semantic dense EXACT index rerank ce
0.97 [0.95–0.98]
0.86 [0.83–0.88]
Not retrieved 1 Reranker demotion 11
7e5 parent-child 800x200 hybrid EXACT index
0.97 [0.95–0.98]
0.81 [0.78–0.84]
Fusion drop 1 Final cutoff 11 1 fragile
8bge semantic hybrid EXACT index rerank ce
0.97 [0.95–0.98]
0.86 [0.83–0.88]
Not retrieved 1 Reranker demotion 12
9e5 semantic dense EXACT index rerank ce
0.97 [0.95–0.98]
0.86 [0.83–0.88]
Reranker demotion 13
10e5 recursive 400 dense EXACT index rerank ce
0.96 [0.94–0.98]
0.86 [0.83–0.89]
Not retrieved 2 Reranker demotion 12 1 fragile
11bge recursive 400 hybrid EXACT index rerank ce
0.96 [0.94–0.98]
0.86 [0.83–0.89]
Fusion drop 6 Reranker demotion 8
12e5 semantic hybrid EXACT index rerank ce
0.96 [0.94–0.98]
0.86 [0.83–0.88]
Fusion drop 1 Reranker demotion 13
13e5 recursive 400 hybrid EXACT index rerank ce
0.96 [0.94–0.98]
0.86 [0.83–0.89]
Fusion drop 3 Reranker demotion 12 1 fragile
14parent-child 800x200 sparse rerank ce
0.96 [0.94–0.98]
0.86 [0.83–0.89]
Not retrieved 12 Reranker demotion 3 1 fragile
15e5 semantic dense EXACT index
0.96 [0.94–0.98]
0.80 [0.77–0.83]
Final cutoff 16
16bge recursive 400 dense EXACT index rerank ce
0.96 [0.93–0.97]
0.86 [0.83–0.89]
Not retrieved 5 Reranker demotion 12
17bge parent-child 800x200 hybrid EXACT index
0.96 [0.93–0.97]
0.80 [0.77–0.83]
Fusion drop 2 Final cutoff 15 1 fragile
18bge fixed 400 hybrid EXACT index rerank ce
0.95 [0.93–0.97]
0.84 [0.81–0.87]
Not retrieved 1 Fusion drop 1 Reranker demotion 16 3 fragile
19e5 fixed 400 hybrid EXACT index rerank ce
0.95 [0.93–0.97]
0.84 [0.81–0.87]
Fusion drop 1 Reranker demotion 17 3 fragile
20e5 fixed 400 dense EXACT index rerank ce
0.95 [0.93–0.97]
0.84 [0.81–0.87]
Not retrieved 1 Reranker demotion 17 3 fragile
21bge fixed 400 dense EXACT index rerank ce
0.95 [0.93–0.97]
0.84 [0.81–0.87]
Not retrieved 4 Reranker demotion 15 3 fragile
22e5 recursive 400 dense EXACT index
0.94 [0.92–0.96]
0.81 [0.78–0.84]
Not retrieved 2 Final cutoff 20
23bge parent-child 800x200 dense EXACT index
0.94 [0.92–0.96]
0.79 [0.76–0.82]
Not retrieved 3 Final cutoff 19 1 fragile
24e5 fixed 400 dense EXACT index
0.94 [0.92–0.96]
0.79 [0.75–0.82]
Not retrieved 1 Final cutoff 22 3 fragile
25recursive 400 sparse rerank ce
0.94 [0.91–0.96]
0.85 [0.82–0.87]
Not retrieved 19 Reranker demotion 5
26semantic sparse rerank ce
0.94 [0.91–0.96]
0.84 [0.81–0.87]
Not retrieved 16 Reranker demotion 9
27e5 semantic hybrid EXACT index
0.94 [0.91–0.96]
0.79 [0.75–0.82]
Fusion drop 1 Final cutoff 24
28fixed 400 sparse rerank ce
0.94 [0.91–0.96]
0.83 [0.80–0.86]
Not retrieved 13 Reranker demotion 13 3 fragile
29e5 recursive 400 hybrid EXACT index
0.93 [0.90–0.95]
0.79 [0.76–0.82]
Fusion drop 3 Final cutoff 24
30bge semantic hybrid EXACT index
0.93 [0.90–0.95]
0.78 [0.74–0.81]
Not retrieved 1 Final cutoff 26
31bge semantic dense EXACT index
0.93 [0.90–0.95]
0.76 [0.73–0.79]
Not retrieved 1 Final cutoff 28
32e5 fixed 400 hybrid EXACT index
0.92 [0.89–0.94]
0.77 [0.74–0.80]
Fusion drop 1 Final cutoff 30 3 fragile
33parent-child 800x200 sparse
0.92 [0.89–0.94]
0.74 [0.70–0.77]
Not retrieved 12 Final cutoff 19 1 fragile
34bge recursive 400 hybrid EXACT index
0.92 [0.89–0.94]
0.77 [0.73–0.80]
Fusion drop 6 Final cutoff 26
35bge fixed 400 hybrid EXACT index
0.92 [0.89–0.94]
0.75 [0.72–0.78]
Not retrieved 1 Fusion drop 1 Final cutoff 31 3 fragile
36bge fixed 400 dense EXACT index
0.92 [0.89–0.94]
0.73 [0.70–0.77]
Not retrieved 4 Final cutoff 29 3 fragile
37bge recursive 400 dense EXACT index
0.91 [0.88–0.94]
0.78 [0.74–0.81]
Not retrieved 5 Final cutoff 30
38e5 fixed 200 dense EXACT index rerank ce
0.91 [0.88–0.94]
0.77 [0.73–0.80]
Not retrieved 11 Reranker demotion 24 14 fragile
39e5 fixed 200 hybrid EXACT index rerank ce
0.90 [0.87–0.93]
0.77 [0.73–0.80]
Not retrieved 10 Fusion drop 7 Reranker demotion 22 14 fragile
40bge fixed 200 dense EXACT index rerank ce
0.89 [0.85–0.91]
0.76 [0.72–0.79]
Not retrieved 26 Reranker demotion 20 12 fragile
41recursive 400 sparse
0.89 [0.85–0.91]
0.71 [0.68–0.75]
Not retrieved 19 Final cutoff 27
42e5 fixed 200 dense EXACT index
0.89 [0.85–0.91]
0.68 [0.64–0.72]
Not retrieved 11 Final cutoff 35 13 fragile
43bge fixed 200 hybrid EXACT index rerank ce
0.88 [0.84–0.91]
0.76 [0.72–0.79]
Not retrieved 19 Fusion drop 7 Reranker demotion 22 12 fragile
44semantic sparse
0.87 [0.84–0.90]
0.71 [0.68–0.75]
Not retrieved 16 Final cutoff 35
45fixed 400 sparse
0.87 [0.84–0.90]
0.70 [0.67–0.74]
Not retrieved 13 Final cutoff 38 1 fragile
46fixed 200 sparse rerank ce
0.85 [0.81–0.88]
0.73 [0.69–0.77]
Not retrieved 50 Reranker demotion 10 12 fragile
47e5 fixed 200 hybrid EXACT index
0.84 [0.81–0.88]
0.67 [0.64–0.71]
Not retrieved 10 Fusion drop 7 Final cutoff 45 12 fragile
48bge fixed 200 hybrid EXACT index
0.83 [0.79–0.86]
0.67 [0.63–0.70]
Not retrieved 19 Fusion drop 7 Final cutoff 42 11 fragile
49bge fixed 200 dense EXACT index
0.82 [0.78–0.86]
0.64 [0.61–0.68]
Not retrieved 26 Final cutoff 44 14 fragile
50fixed 200 sparse
0.79 [0.74–0.82]
0.61 [0.57–0.64]
Not retrieved 50 Final cutoff 35 11 fragile

Quality vs. context trade-offs (the Pareto frontier)

“Pareto frontier” is the standard name for the outer edge of best trade-offs: a point is on it when no other tested config is both more accurate and uses the same or fewer retrieved tokens. There may be several good choices because improving quality can require more context.

0.750.800.850.900.951.00166389611avg retrieved tokens →hit@k ↑e5 · fixed 200 · dense — hit@k 0.885, 194 avg tokensbge · fixed 200 · dense — hit@k 0.825, 194 avg tokensbge · fixed 200 · dense · ce — hit@k 0.885, 190 avg tokense5 · fixed 200 · hybrid — hit@k 0.845, 191 avg tokensbge · fixed 200 · hybrid — hit@k 0.830, 191 avg tokense5 · fixed 400 · dense — hit@k 0.943, 361 avg tokense5 · fixed 400 · dense · ce — hit@k 0.955, 360 avg tokensbge · fixed 400 · dense — hit@k 0.917, 371 avg tokensbge · fixed 400 · dense · ce — hit@k 0.953, 363 avg tokensfixed 400 · sparse — hit@k 0.873, 347 avg tokensfixed 400 · sparse · ce — hit@k 0.935, 362 avg tokense5 · fixed 400 · hybrid — hit@k 0.922, 359 avg tokense5 · fixed 400 · hybrid · ce — hit@k 0.955, 360 avg tokensbge · fixed 400 · hybrid — hit@k 0.917, 366 avg tokensbge · fixed 400 · hybrid · ce — hit@k 0.955, 362 avg tokensbge · recursive 400 · dense — hit@k 0.912, 322 avg tokensbge · recursive 400 · dense · ce — hit@k 0.958, 317 avg tokensrecursive 400 · sparse — hit@k 0.885, 316 avg tokensrecursive 400 · sparse · ce — hit@k 0.940, 315 avg tokense5 · recursive 400 · hybrid — hit@k 0.932, 314 avg tokense5 · recursive 400 · hybrid · ce — hit@k 0.963, 311 avg tokensbge · recursive 400 · hybrid — hit@k 0.920, 322 avg tokensbge · recursive 400 · hybrid · ce — hit@k 0.965, 314 avg tokense5 · semantic · dense — hit@k 0.960, 406 avg tokensbge · semantic · dense — hit@k 0.927, 459 avg tokenssemantic · sparse — hit@k 0.873, 367 avg tokenssemantic · sparse · ce — hit@k 0.938, 388 avg tokense5 · semantic · hybrid — hit@k 0.938, 401 avg tokense5 · semantic · hybrid · ce — hit@k 0.965, 383 avg tokensbge · semantic · hybrid — hit@k 0.932, 437 avg tokensbge · semantic · hybrid · ce — hit@k 0.968, 390 avg tokensbge · parent-child 800x200 · dense — hit@k 0.945, 575 avg tokensbge · parent-child 800x200 · dense · ce — hit@k 0.985, 576 avg tokensparent-child 800x200 · sparse — hit@k 0.922, 549 avg tokensparent-child 800x200 · sparse · ce — hit@k 0.963, 576 avg tokense5 · parent-child 800x200 · hybrid — hit@k 0.970, 577 avg tokensbge · parent-child 800x200 · hybrid — hit@k 0.958, 573 avg tokense5 · parent-child 800x200 · dense · ce — hit@k 0.993, 577 avg tokense5 · parent-child 800x200 · dense · ce · 0.99e5 · parent-child 800x200 · hybrid · ce — hit@k 0.990, 575 avg tokense5 · parent-child 800x200 · hybrid · ce · 0.99bge · parent-child 800x200 · hybrid · ce — hit@k 0.985, 575 avg tokensbge · parent-child 800x200 · hybrid · ce · 0.98e5 · parent-child 800x200 · dense — hit@k 0.978, 574 avg tokense5 · parent-child 800x200 · dense · 0.98bge · semantic · dense · ce — hit@k 0.970, 399 avg tokensbge · semantic · dense · ce · 0.97e5 · semantic · dense · ce — hit@k 0.968, 383 avg tokense5 · semantic · dense · ce · 0.97e5 · recursive 400 · dense · ce — hit@k 0.965, 310 avg tokense5 · recursive 400 · dense · ce · 0.96e5 · recursive 400 · dense — hit@k 0.945, 306 avg tokense5 · recursive 400 · dense · 0.94e5 · fixed 200 · dense · ce — hit@k 0.912, 191 avg tokense5 · fixed 200 · dense · ce · 0.91e5 · fixed 200 · hybrid · ce — hit@k 0.902, 190 avg tokense5 · fixed 200 · hybrid · ce · 0.90bge · fixed 200 · hybrid · ce — hit@k 0.880, 189 avg tokensbge · fixed 200 · hybrid · ce · 0.88fixed 200 · sparse · ce — hit@k 0.850, 188 avg tokensfixed 200 · sparse · ce · 0.85fixed 200 · sparse — hit@k 0.787, 184 avg tokensfixed 200 · sparse · 0.79
Move up for more hits; move left for less context. Filled points are best trade-offs. Hollow points are dominated: another config is at least as good on both axes and better on one.

Runtime and index cost

Environment-specific measurements from this machine. Warm p50/p95 time retrieval with query embeddings already cached, so configs are comparable; cross-encoder time is included. Build time includes passage embedding and index construction. Index is the exact vector matrix or serialized HNSW graph size—not total process memory.

configwarm p50 mswarm p95 msbuild msindex
e5 parent-child 800x200 dense EXACT index rerank ce101.3116.90.9122 KB
e5 parent-child 800x200 hybrid EXACT index rerank ce101.2132.93.0122 KB
bge parent-child 800x200 hybrid EXACT index rerank ce100.1114.83.0122 KB
bge parent-child 800x200 dense EXACT index rerank ce102.7132.40.9122 KB
e5 parent-child 800x200 dense EXACT index0.10.10.9122 KB
bge semantic dense EXACT index rerank ce369.9439.51537.269 KB
e5 parent-child 800x200 hybrid EXACT index0.30.43.0122 KB
bge semantic hybrid EXACT index rerank ce366.2399.11539.269 KB
e5 semantic dense EXACT index rerank ce387.5600.91570.969 KB
e5 recursive 400 dense EXACT index rerank ce183.0256.3801.572 KB
bge recursive 400 hybrid EXACT index rerank ce187.0286.8798.272 KB
e5 semantic hybrid EXACT index rerank ce367.4458.21572.969 KB
e5 recursive 400 hybrid EXACT index rerank ce178.3246.8803.372 KB
parent-child 800x200 sparse rerank ce100.5114.72.1
e5 semantic dense EXACT index0.10.11570.969 KB
bge recursive 400 dense EXACT index rerank ce181.0260.8796.472 KB
bge parent-child 800x200 hybrid EXACT index0.30.43.0122 KB
bge fixed 400 hybrid EXACT index rerank ce223.3287.6869.068 KB
e5 fixed 400 hybrid EXACT index rerank ce201.3287.2836.468 KB
e5 fixed 400 dense EXACT index rerank ce190.6287.5834.368 KB
bge fixed 400 dense EXACT index rerank ce195.8318.4867.068 KB
e5 recursive 400 dense EXACT index0.10.1801.572 KB
bge parent-child 800x200 dense EXACT index0.10.10.9122 KB
e5 fixed 400 dense EXACT index0.10.1834.368 KB
recursive 400 sparse rerank ce190.1311.61.9
semantic sparse rerank ce363.4476.82.0
e5 semantic hybrid EXACT index0.20.31572.969 KB
fixed 400 sparse rerank ce201.5297.12.0
e5 recursive 400 hybrid EXACT index0.20.3803.372 KB
bge semantic hybrid EXACT index0.20.31539.269 KB
bge semantic dense EXACT index0.00.11537.269 KB
e5 fixed 400 hybrid EXACT index0.20.3836.468 KB
parent-child 800x200 sparse0.20.32.1
bge recursive 400 hybrid EXACT index0.20.3798.272 KB
bge fixed 400 hybrid EXACT index0.30.4869.068 KB
bge fixed 400 dense EXACT index0.10.1867.068 KB
bge recursive 400 dense EXACT index0.10.1796.472 KB
e5 fixed 200 dense EXACT index rerank ce107.9128.61300.1122 KB
e5 fixed 200 hybrid EXACT index rerank ce115.8138.71301.1122 KB
bge fixed 200 dense EXACT index rerank ce117.8176.8714.2122 KB
recursive 400 sparse0.20.21.9
e5 fixed 200 dense EXACT index0.00.11300.1122 KB
bge fixed 200 hybrid EXACT index rerank ce124.4157.1715.3122 KB
semantic sparse0.10.22.0
fixed 400 sparse0.20.22.0
fixed 200 sparse rerank ce117.7136.91.0
e5 fixed 200 hybrid EXACT index0.30.41301.1122 KB
bge fixed 200 hybrid EXACT index0.30.5715.3122 KB
bge fixed 200 dense EXACT index0.10.1714.2122 KB
fixed 200 sparse0.20.31.0