← back

📷 "For anyone following my MacMini / @EyeTV setup, here are the channels I'm getting in NYC w/ TWC QAM:" by dpstyles™ is licensed under CC BY 2.0. To view a copy of this license, visit https://creativecommons.org/licenses/by/2.0/.

Hybrid Search for RAG 2026: BM25, Vector Search, and Reranking in Production

03 August 2026 · 4 min · Martin Jochum #RAG#KI#Hybride Suche#BM25#Vektorsuche#Reranking#Retrieval-Augmented Generation

Pure vector search repeatedly hits its limits in practice: searching for an error message like ERR_SSL_VERSION_OR_CIPHER_MISMATCH, a product SKU like RTX-4090, or an API name like torch.nn.functional.cross_entropy often yields unusable results from pure embedding models. The reason lies in the architecture: dense embeddings average all tokens of a text via pooling into a single vector – exact term information is lost. BM25, the proven keyword algorithm from the 1990s, does not have this problem, but fails on synonyms and paraphrases.

The production standard for RAG systems in 2026 is therefore the combination of both methods plus a reranking step. Hybrid search is not a toy for special cases, but the architecture that delivers the highest retrieval quality in most production systems.

Why pure vector search systematically fails

Dense embedding models like OpenAI text-embedding-3-large or bge-m3 project texts into a high-dimensional vector space. This works excellently for semantic similarity – from “login issue” you also find “login error” or “authentication error”. But with exact designations, the principle fails: a document about ERR_SSL_VERSION_OR_CIPHER_MISMATCH is classified as an “SSL document”, not as a match for that exact error message. The BEIR benchmark already showed in 2021 that dense retrieval often performs worse than BM25 in zero-shot cross-domain scenarios – a result that led many teams to combine both methods.

An active analysis from practice shows: about 35 percent of support queries contain specific error codes or product IDs – pure vector search fails on every single one of them.

Hybrid search: two retrieval paths, one result

The architecture is simple: a query is sent in parallel to a BM25 index and a vector index. The challenge lies in merging the results, because BM25 scores and cosine similarities are on completely different scales.

This is where Reciprocal Rank Fusion (RRF) comes into play. RRF converts the position of each document in each ranking into a score: 1/(k + rank) with k=60 as default. Documents that appear high in both lists receive the highest score. The big advantage: RRF requires no normalization and works without labeled training data. Elasticsearch 8.x, OpenSearch 2.12+, Weaviate, and Qdrant support RRF natively.

The alternative is weighted linear combination: Score = α · VectorScore + (1-α) · BM25Score. Bruch et al. (2022) showed that as few as 40 labeled query-relevance pairs are enough to find a better α than RRF. Typical values: α ≈ 0.3 for technical documentation (weight on BM25) and α ≈ 0.7 for conversational content.

Reranking: the second stage for precision

However, the biggest lever for retrieval quality lies in reranking. While the first stage optimizes for high recall (top-100 candidates), a cross-encoder in the second stage evaluates each (query, document) pair jointly – and thus generates much more precise relevance scores than pure cosine similarity.

The results are significant: Weaviate benchmarks on BEIR datasets show an improvement of Success@1 by 17 percent (from 0.43 to 0.52) and Recall@5 by 11 percent (from 0.70 to 0.81) through the additional reranking step. On the challenging BRIGHT-Biology benchmark, reranking improved nDCG@10 from 0.13 to 0.40 – a tripling.

Production-ready rerankers today include Cohere Rerank v3, Voyage Rerank-2, Jina Reranker v2, and the open-source BGE-Reranker-v2 from BAAI.

Evaluation: four metrics everyone should measure

Without measurement, RAG remains a black box. Four evaluation axes have become standard:

  • Context Recall – Do the retrieval results contain the relevant passages?
  • Context Precision – Are the found passages actually relevant?
  • Groundedness – Is every claim of the answer supported by the context?
  • Answer Relevance – Does the answer address the actual question?

Frameworks like RAGAS (open source, broad metric coverage) and TruLens (tracing + evaluation in one library) allow these metrics to be computed automatically on every commit. The 2026 trend is toward online evaluation: instead of only running nightly batch runs, teams sample 5–10 percent of live traffic through the same evaluators.

The single most important alert value is Faithfulness (Groundedness): an answer not supported by the retrieved context is a hallucination – no matter how fluently it is formulated.

Conclusion

The discussion “BM25 or vector search?” is obsolete in 2026. The production standard is the combination of both methods with a subsequent reranking. The gains are measurable: higher retrieval recall, more precise ranking results, and above all fewer hallucinations because the LLM receives better context.

Teams investing in hybrid search architectures today are laying the foundation for the next stage of development: agentic retrieval, where the LLM independently decides when and how to request additional information – and where the quality of the underlying retrieval system determines success or failure.

Sources

🌐 Machine-translated from the German original, editorially reviewed. 🤖 Written with AI assistance.