Search & IR · advanced
Hybrid Search
Fusing lexical (BM25) and vector retrieval, usually via reciprocal rank fusion.
Mental model
Lexical search nails exact terms and rare tokens; vector search captures meaning. Hybrid search runs both and fuses the rankings (commonly Reciprocal Rank Fusion) so you get precision and recall together.
How to study Hybrid Search
Begin by restating the mental model in your own words, then connect it to a concrete system you have built or operated. Name the mechanism, the constraint it addresses, and the trade-off it introduces. Use Reciprocal Rank Fusion (Cormack et al.), Elasticsearch — Hybrid search, Pinecone — Hybrid search overview to check details, but close the source before writing your explanation. Retrieval is the learning step; rereading is only preparation.
Next, compare Hybrid Search with Reranking, Search Evals, RAG. Ask what changes in correctness, latency, resource use, operability, and failure recovery. Complete Implement reciprocal rank fusion and preserve the command, input, output, and one failed attempt as evidence. Finish by explaining the idea without jargon to someone who has not studied the track.
Proof of understanding
- Explain the mechanism from first principles and identify the state it reads or changes.
- Give one situation where the concept is the right choice and one where it is not.
- Predict a realistic failure mode before running the drill, then compare the prediction with evidence.
- Connect the result to a roadmap or build artifact instead of treating the concept as isolated trivia.
Where it matters
Production RAG retrieval, Elasticsearch hybrid, Weaviate/Qdrant hybrid modes.
Common mistakes
- Naively averaging incomparable BM25 and cosine scores
- Skipping RRF and instead picking one retriever per query
- Not re-evaluating after adding the second retriever
Learn from primary sources
- Reciprocal Rank Fusion (Cormack et al.) (paper)
- Elasticsearch — Hybrid search (article)
- Pinecone — Hybrid search overview (article)
Practice and explain it back
Implement reciprocal rank fusion
Given two ranked result lists (BM25 and vector), fuse them with RRF: score(d) = Σ 1/(k + rank_i(d)), k≈60.
Expected evidence: A single fused ranking that uses rank, not raw scores.
Open the interactive drill →Review prompts
- Why use reciprocal rank fusion instead of averaging BM25 and cosine scores?
- How would you combine BM25 and vector search?
Build evidence
Hybrid search v0 in HighSignal
Combine BM25 and vector retrieval with reciprocal rank fusion.
- Run BM25 and vector retrieval over the same corpus
- Fuse results with reciprocal rank fusion
- Beat both single retrievers on the search eval set