Measure the ranking you retrieve, not only the final answer.
Change k, the relevance threshold and reranking depth on a visible synthetic ranking. Separately, change chunk size and overlap to see how much text you duplicate in the index without pretending that this storage cost predicts semantic retrieval quality.
Deliberate separation: the chunking panel computes index size and textual duplication. It does not turn chunk size or overlap into a supposed relevance gain. Demonstrating a gain requires running the retriever against real qrels.
Each metric answers a different question.
Precision@k asks what proportion of the first k results clears your relevance threshold. Recall@k asks what fraction of all known relevant items that top-k managed to recover.
MRR@k depends only on the rank of the first relevant result. It is useful when finding one good piece of evidence early is enough, but it cannot distinguish an excellent ranking from a mediocre one after that first hit.
nDCG@k supports graded relevance. This lab uses gain 2^rel − 1 with logarithmic rank discount, divided by the ideal DCG for the same judgments.
Reranking. The lab applies a second score only to the prefix you select. This makes a common pattern explicit: a cheap retriever generates candidates, then a more expensive reranker tries to improve their order without rescuing documents that never entered the candidate set.
Chunking. Stride is chunk_size − overlap. Overlapping windows increase indexed tokens; that redundancy can reduce boundary cuts, but it also increases storage and redundant candidates. The lab computes that footprint exactly for the configured corpus and leaves quality as a separate measurement.
Incomplete judgments. Recall requires knowing how many relevant results exist. If your qrels are partial, the denominator is partial too; do not read a high score as absolute coverage of the knowledge base.
Sources: Karpukhin et al. (DPR, EMNLP 2020), Lewis et al. (RAG, 2020), Thakur et al. (BEIR, 2021), and Järvelin & Kekäläinen (2002).