From Sanskriti Khandelwal | Product & Market Analysis

Hybrid Search Beats Pure Vector Search in Published Benchmarks

On this page

Vector search alone is the weakest retrieval setup that published benchmarks still treat as a baseline. Across 18 BEIR datasets, a BM25 first stage plus a small reranker scored 11% higher than BM25, while most dense retrievers of the period scored lower. Hybrid search for RAG is not a tuning trick. It is what the evidence has pointed to since 2021.

Key takeaways

  • Keyword search is a stronger baseline than most teams assume. On the BEIR benchmark, the dense retriever TAS-B averaged 2.8% below BM25 across 18 out-of-domain datasets, and DPR averaged 47.7% below it.
  • Fusing keyword and vector results beat either one alone on every dataset tested. In a 2023 study by Bruch, Gai and Ingber, a tuned convex combination outscored the better single retriever on all 9 datasets.
  • A reranker was the largest single gain in BEIR, and the slowest component. BM25 plus a cross-encoder beat BM25 on 16 of 18 datasets, at 450 milliseconds per query on a GPU against 20 for BM25 on a CPU.
  • Rerankers are not a free win on every task. On the reasoning-heavy BRIGHT benchmark, a small cross-encoder lowered BM25's average score, while a GPT-4 reranker raised it from 14.3 to 17.4.
+11%BM25 plus a cross-encoder reranker against BM25 alone, average across 18 datasets. Source: BEIR, Thakur et al., 2021.
9 of 9Datasets on which convex-combination fusion beat the better of keyword or vector search. Source: Bruch et al., 2023.
59.0 to 18.3One leading embedding model's nDCG@10 on BEIR, then on reasoning-heavy queries. Source: BRIGHT, Su et al., 2025.

If you need the short answer first, here it is for a production retrieval augmented generation system. Run keyword and vector retrieval in parallel, merge the two ranked lists, and rerank the top 50 to 150 candidates before generation. Use Reciprocal Rank Fusion when you have no labelled queries. Switch to a tuned weighted combination once you have about 40. Test the reranker on your own queries before you trust it.

What hybrid search and a reranker actually do

Three components appear in every result below, so the terms need fixing first. Each one ranks documents differently, and the reason hybrid search works is that they fail on different queries.

BM25 is the standard keyword ranking function. It scores a document by how often your query terms appear in it, discounted for common words and long documents. It needs no training and it cannot understand a synonym.

Vector search, also called dense retrieval, converts the query and each document into an embedding and returns the nearest neighbours. It matches meaning rather than words. It also misses exact strings it has never seen, such as part numbers, error codes and internal product names.

Fusion: how two ranked lists become one

Hybrid search runs both retrievers and merges their output. There are two common merge methods, and the choice between them turns out to matter.

Reciprocal Rank Fusion (RRF) ignores the raw scores and uses only each document's position in each list. A document ranked highly by both retrievers rises to the top. It needs no calibration, which is why most vector databases ship it as the default.

Convex combination normalises both sets of scores to a common range and takes a weighted average. One weight, usually called alpha, decides how much the vector score counts against the keyword score. It needs tuning, and the evidence below says the tuning pays.

Rerankers: a second, slower opinion

A reranker is a model that reads the query and one candidate document together and outputs a relevance score. The usual form is a cross-encoder. Because it reads both texts jointly, it judges relevance far more precisely than an embedding comparison can.

That precision is expensive. A cross-encoder must run once per candidate, per query, so it cannot search a whole corpus. It only reorders a shortlist that a cheaper retriever has already produced. In every architecture in this post, retrieval decides what is possible and reranking decides what reaches the model.

BEIR: BM25 beat most dense retrievers out of domain

BEIR is the benchmark most retrieval claims are measured against. Thakur and colleagues published it at NeurIPS 2021 with 18 public datasets across 9 task types, from biomedical question answering to argument retrieval. They evaluated 10 retrieval systems without training any of them on the target data.

That zero-shot setup is the important part. It is the situation your RAG system is in when you point a general embedding model at your company's documents. The model has never seen your domain, your vocabulary or your question style.

The headline result has aged better than most 2021 machine learning findings. In the authors' words, BM25 remains a strong baseline for zero-shot text retrieval. Several neural retrievers that beat BM25 by 7 to 18 points on the in-domain MS MARCO set lost to it once the domain changed.

Average zero-shot score relative to BM25, 18 BEIR datasets nDCG@10, percentage difference from BM25. Left of the line is worse than keyword search. BM25 = 0 DPR (dense)-47.7% DeepCT (sparse)-27.9% ANCE (dense)-7.4% GenQ (dense)-3.6% TAS-B (dense)-2.8% ColBERT (late interaction)+2.5% BM25 + cross-encoder+11%
Only two approaches cleared keyword search on average. The clear winner kept BM25 as its first stage. Source: BEIR Table 2, Thakur et al., 2021.

Where dense retrieval won, and where it lost

The average hides a split that is more useful than the average itself. Dense retrieval did not lose everywhere. It won on the datasets that look like its training data and lost on the ones that do not.

BEIR nDCG@10 on selected datasets: BM25, the dense model TAS-B, and BM25 with a cross-encoder reranker
DatasetDomainBM25TAS-B (dense)BM25 + reranker
NQWikipedia questions0.3290.4630.533
FiQA-2018Financial questions0.2360.3000.347
DBPediaEntity retrieval0.3130.3840.409
TREC-COVIDBiomedical literature0.6560.4810.757
BioASQBiomedical questions0.4650.3830.523
Signal-1MNews tweets0.3300.2890.338
Touché-2020Argument retrieval0.3670.1620.271

Figures from BEIR Table 2. Higher is better. The first three rows are cases where the dense model beat BM25. The next four are cases where it lost. The reranker beat BM25 on 16 of 18 datasets and lost on ArguAna and Touché-2020.

Read the TREC-COVID row twice. The dense model scored 0.481 on biomedical literature where plain keyword search scored 0.656. Specialist vocabulary is exactly what a general embedding model has seen least of, and specialist vocabulary is what most internal knowledge bases are made of.

I think this is the single most under-used fact in RAG design. Teams pick an embedding model from a leaderboard built on web text, then deploy it on contracts, clinical notes or support tickets, and never check it against keyword search on their own data.

Index size is part of the bill

BEIR also measured storage, which rarely makes it into the discussion. For the BioASQ corpus of roughly 15 million documents, the authors report that ColBERT needed about 900GB of index against 18GB for BM25. Dense single-vector models sat in between, at 3GB per million documents in their latency test. Adding BM25 to a vector stack is cheap in storage terms, which matters if you are already paying for vector database capacity priced by stored dimensions.

Hybrid fusion beat both retrievers on all 9 datasets tested

BEIR compared retrievers one at a time. The more direct test of hybrid search came in a study by Sebastian Bruch, Siyu Gai and Amir Ingber, first posted in October 2022 and revised in May 2023 with an ACM journal DOI. They fused BM25 with the small embedding model all-MiniLM-L6-v2 and measured the result on MS MARCO and 8 BEIR datasets.

Six of those datasets were out of domain for the embedding model. That makes them the closest match in the study to a RAG system running on private documents.

Keyword, vector and hybrid retrieval on 6 out-of-domain datasets, Bruch et al. (NDCG@1000, @100 for NFCorpus and SciFact)
DatasetBM25VectorRRF hybridConvex combination
NFCorpus0.2680.2960.3120.327
HotpotQA0.6820.5200.6750.699
FEVER0.6890.5580.7210.744
SciFact0.6980.6810.7300.753
DBPedia0.4150.4250.4890.512
FiQA0.3150.4670.4640.496
Simple average, our calculation0.5110.4910.5650.589

Per-dataset figures are from Table 2 of the paper, test split, convex combination at alpha 0.8, RRF at the standard constant of 60. The paper reports no cross-dataset average. The last row is our own unweighted mean, so treat it as a summary rather than a published result.

Three things stand out. On these six datasets, BM25 alone averaged higher than vector search alone. The convex combination beat the better single retriever on every dataset in the paper, all 9 including the in-domain three. And RRF did not: it fell below the best single retriever on HotpotQA, on MS MARCO and on Quora.

RRF is the safe default, not the best one

The authors are blunt about it. They found that a convex combination outperforms RRF in both in-domain and out-of-domain settings, and that it needs only a small set of labelled queries to tune its single weight. They also found RRF more sensitive to its own parameters than earlier work suggested, and that RRF tuned on one domain generalised poorly to others.

Elastic's search team reached a compatible conclusion on BEIR in July 2023. Their hybrid retrieval evaluation found RRF lifted average nDCG@10 by 18% over BM25 and 1.4% over their learned sparse model, with no tuning. A calibrated linear combination reached 24% and 6% respectively, and beat RRF with about 40 annotated queries. Elastic sells the search engine, so read it as a vendor measurement on a public benchmark, which is still more than most RAG advice offers.

My position: ship RRF on day one, because it cannot hurt you much. Then build the labelled set and move to a weighted combination. Leaving RRF in place forever is the most common way a team pays for hybrid search and collects half of its benefit.

Rerankers delivered the largest gain, at a latency price

Go back to the BEIR chart. The best performer was not a better embedding model. It was the simplest pipeline in the paper, BM25 retrieving 100 candidates and a 6-layer MiniLM cross-encoder reordering them.

That model averaged 11% above BM25 and beat it on 16 of 18 datasets. The authors' own summary is that the cross-attentional re-ranking model performs the best, and that cross-attention appears important for generalising to new domains.

Query latency on 1 million DBPedia documents, BEIR 2021 hardware Milliseconds per query. Bar lengths use a square-root scale so the short bars stay visible. TAS-B, GPU14ms BM25, CPU20ms TAS-B, CPU125ms BM25 + reranker, GPU450ms BM25 + reranker, CPU6,100ms GPU: one Nvidia V100. CPU: 8-core Xeon Platinum 8168. Reranker scored the top 100 BM25 hits.
The accuracy leader was also the slowest system by more than an order of magnitude. On a CPU it took about six seconds a query, which no chat interface can absorb.

The latency bill is set by the shortlist length

Those numbers are from 2021 hardware and a 2021 model, so do not copy them into a capacity plan. The shape is what transfers. Reranking cost scales with the number of candidates you score, so the depth of the shortlist is the main dial you control.

BEIR's authors put it directly: dense retrievers ran 20 to 30 times faster than the re-ranking models on the same GPU. In practice that means the reranker belongs at the end of the pipeline, on a list of tens or low hundreds of candidates, never on the corpus.

The trade is usually worth it for RAG, for a reason specific to generation. A chat answer already waits seconds for the language model. A few hundred extra milliseconds that remove a near-miss passage from the context window are cheaper than the wrong answer that passage would cause.

What the RAG-specific results add

BEIR and the fusion study measure ranking quality on question and passage sets. RAG adds a constraint they do not: only the top handful of chunks reaches the model. So the useful RAG metric is whether the right chunk lands in that handful.

Anthropic published exactly that measurement in its September 2024 contextual retrieval write-up. Across codebases, fiction, arXiv papers and science papers, Anthropic measured how often the right chunk missed the top 20. The rate was 5.7% with embeddings alone and 1.9% with contextual embeddings, contextual BM25 and a reranker. The reranker scored the top 150 candidates and passed 20 forward.

Each step stacked on the last. Adding keyword search to contextual embeddings took the failure rate from 3.7% to 2.9%. Reranking took it to 1.9%. That is a vendor measurement on undisclosed queries, so it is directional, but it matches the ordering in the academic results. How it fits into a full retrieval diagnosis is covered in the analysis of why most RAG failures are ranking failures.

The practical point is that none of these gains came from a bigger model or a longer context window. They came from retrieval plumbing that costs very little once built. That matters when the alternative being pitched to you is to pay for long-context calls instead of fixing retrieval.

Where this argument is weakest

The case for hybrid search rests partly on old models and partly on benchmarks that suit keyword search. Both weaknesses are real, and both deserve stating before you change an architecture on the strength of this post.

The dense models in BEIR are from 2021

TAS-B, ANCE and DPR are early dense retrievers. Current embedding models are far stronger on BEIR itself. SFR-Embedding-Mistral, one model the BRIGHT authors highlight, scored 59.0 nDCG@10 on the MTEB retrieval subset, a level no 2021 dense model approached. On generic web-style queries, a modern embedding model alone may beat BM25 outright.

The BEIR paper also flags its own bias. Some datasets were labelled using lexical systems, giving an unfair disadvantage to non-lexical approaches. Some of BM25's apparent strength is an artefact of how the answers were judged. The fusion study, which used a weak 384-dimension embedding model, is open to a similar objection.

What survives both objections is narrower and still decisive. Fusion beat the better single retriever on every dataset in the Bruch study, including the three where the vector model was trained in domain. Hybrid search does not require keyword search to be good. It requires the two methods to make different mistakes, and they do.

Rerankers can make reasoning-heavy retrieval worse

The BRIGHT benchmark, published in 2024 and revised in March 2025, tests 1,384 queries across 12 datasets where finding the right document requires reasoning. A typical task is matching a coding problem to the technique that solves it. Every retriever struggled. BM25 averaged 14.5 nDCG@10 and the best model in its main table, a 7.7 billion parameter Qwen embedding model, averaged 22.5.

Here the small cross-encoder that won BEIR backfired. Reranking BM25's top 10 with a MiniLM cross-encoder dropped its average from 14.3 to 13.1, and to 8.3 when reranking the top 100. A GPT-4 reranker on the same top 10 raised it to 17.4. The lesson is that a reranker is a model with a training distribution of its own, and it can be wrong in a new domain the same way an embedding model can.

So the claim in this post is narrower than its title. Hybrid retrieval is the better default on the evidence available. Reranking is usually the better default, but it is the component you must test on your own queries before you ship it.

A decision tree for hybrid search RAG

Most of the published evidence converts into four questions. Answer them in order and you have an architecture you can defend in a design review, and a test plan to check it.

Choosing a retrieval architecture for RAG Illustrative decision path built from the published results above, not a measured model. 1. Is this a demo on generic web-style text, with no identifiers, codes or specialist vocabulary? Yes:vector search may suffice No: continue. Use hybrid search. 2. Do you have about 40 labelled queries? Real questions with the correct passage marked Yes:tune a weighted combination No: start with RRF, build the set 3. Can the answer path absorb a few hundred ms? Chat and agent answers usually can. Autocomplete cannot. Yes:rerank the top 50 to 150 No: skip reranking, tune fusion 4. Do queries need reasoning to match documents? Code-to-technique, problem-to-principle, multi-hop Yes:test an LLM reranker No: a cross-encoder is the default Every branch ends the same way: measure recall at k on your labelled set before and after.
The tree is illustrative. It encodes the direction of the published results, and the final bar is the step that turns it into a measured decision for your corpus.

The tree deliberately has one exit to pure vector search, and it is narrow. If your queries are conversational, your documents are general prose and nothing in them is an identifier, a modern embedding model alone may be enough. Very few production knowledge bases look like that.

Retrieval architectures for RAG compared on the evidence, including where the simpler option wins
ArchitectureWhat the evidence showsWhen to choose it
Vector search onlyBelow BM25 on average across BEIR for 2021 dense models; strong on web-style questionsPrototypes on generic text, with no identifiers in the corpus
Hybrid with RRF+18% over BM25 on BEIR in Elastic's test; below the best single retriever on 3 of 9 sets in Bruch et al.Day one of production, before you have labelled queries
Hybrid with tuned weightsBeat the better single retriever on 9 of 9 datasets; beat RRF with about 40 labelled queries in Elastic's testOnce you have a labelled set and the corpus is stable
Hybrid plus cross-encoderLargest BEIR gain at +11% over BM25; slowest stage; can hurt on reasoning queriesMost RAG systems with a chat-speed latency budget
Where the simpler option winsOn BRIGHT, a small cross-encoder lowered BM25's score; reranking 100 candidates did more damage than 10Reasoning-heavy queries, unless an LLM reranker tests better on your data

Two implementation notes follow from the evidence. First, keep the two retrievers independent so you can measure each one alone, because a fusion score that hides which side found the answer cannot be debugged. Second, record the labelled set as a permanent asset. It is the input to fusion tuning, reranker selection and every model swap after that, and it belongs in the same harness as the rest of your LLM evaluation suite.

If you are designing the wider stack, the retrieval layer sits alongside access control, logging and model routing in the enterprise AI reference architecture. Hybrid retrieval is the part of that stack where published evidence is strongest, which makes it the cheapest decision to get right.

Frequently asked questions

Is hybrid search better than vector search for RAG?

On the published evidence, yes. In a 2023 study by Bruch, Gai and Ingber, a tuned combination of BM25 and vector scores beat the better single retriever on all 9 datasets tested. Elastic measured an 18% average gain over BM25 on BEIR using Reciprocal Rank Fusion. Hybrid works because keyword and vector search fail on different queries, so combining them recovers documents that either one alone would miss.

What is a reranker in RAG?

A reranker is a model that reads the query and each candidate passage together and scores their relevance. It runs after retrieval on a shortlist, typically tens to low hundreds of candidates, and reorders them before the top few go to the language model. On the BEIR benchmark, BM25 plus a small cross-encoder reranker averaged 11% above BM25 alone and beat it on 16 of 18 datasets.

BM25 vs embeddings: which is better for retrieval?

Neither wins everywhere. On BEIR, the 2021 dense model TAS-B beat BM25 on general questions such as NQ, scoring 0.463 against 0.329. BM25 won on biomedical TREC-COVID, 0.656 against 0.481. Modern embedding models are much stronger than 2021 ones, but specialist vocabulary and exact identifiers still favour keyword search. That split is the practical argument for running both together.

Should I use reciprocal rank fusion or a weighted combination?

Start with Reciprocal Rank Fusion because it needs no tuning or labelled data. Move to a weighted convex combination once you have labelled queries. Bruch et al. found the convex combination beat RRF in and out of domain, and Elastic found it outperformed RRF with about 40 annotated queries. A weighted combination needs score normalisation and occasional retuning as your documents change.

How much latency does a reranker add?

It depends on the model, the hardware and how many candidates you score. In the 2021 BEIR test on 1 million documents, BM25 plus a MiniLM cross-encoder over 100 candidates took 450 milliseconds per query on a V100 GPU and 6,100 milliseconds on CPU. BM25 alone took 20 milliseconds. Current models and hardware differ, so measure your own pipeline at your shortlist depth.

Do rerankers always improve retrieval?

No. On BRIGHT, a benchmark of reasoning-heavy retrieval, a small MiniLM cross-encoder lowered BM25's average nDCG@10 from 14.3 to 13.1 when reranking the top 10, and to 8.3 when reranking the top 100. A GPT-4 reranker raised it to 17.4. A reranker has its own training distribution, so test it on your own labelled queries before adding it to production.

Where to start this week

Pull 50 real questions from your logs or your support queue. For each one, have someone who knows the domain mark the passage that answers it. This takes an afternoon, and every decision in this post depends on it.

Then run three retrieval configurations against that set and record recall at 5 and at 20: your current vector search, BM25 alone, and the two fused with RRF. If BM25 alone beats your vector search on any slice of questions, you have found the reason your RAG answers are worse than your demo. The fix is a configuration change rather than a new model.

Related in this cluster

Retrieval quality is one half of the RAG argument. The other half is cost, covered in the comparison of RAG against long-context prompting.

References

  1. Thakur, Reimers, Rücklé, Srivastava and Gurevych, BEIR: A Heterogeneous Benchmark for Zero-shot Evaluation of Information Retrieval Models, NeurIPS 2021 Datasets and Benchmarks track. Used for all BEIR scores, latency and index size figures.
  2. Bruch, Gai and Ingber, An Analysis of Fusion Functions for Hybrid Retrieval, arXiv v2, May 2023, ACM DOI 10.1145/3596512. Used for the fusion comparison table and RRF findings.
  3. Su et al., BRIGHT: A Realistic and Challenging Benchmark for Reasoning-Intensive Retrieval, arXiv v4, March 2025. Used for reasoning-retrieval scores and reranker results.
  4. Herreros and Veasey, Elastic, Improving information retrieval in the Elastic Stack: Hybrid retrieval, 20 July 2023. Vendor measurement on BEIR, used for RRF and linear combination gains.
  5. Anthropic, Introducing Contextual Retrieval, 19 September 2024. Vendor measurement, used for top-20 retrieval failure rates.

Weakest point in the source base: the strongest academic results use dense models from 2021 and 2022, and the two RAG-specific figures come from vendors measuring on their own query sets. The direction is consistent across all five sources. The size of the gain on your corpus is not something any of them can tell you.

SK
Sanskriti Khandelwal
Founding Member, Zan Digital. Writes about AI product economics, B2B software markets and what the numbers behind vendor claims actually say.

Related reading