Modern vector databases combine sparse (BM25) and dense vectors at the storage layer via two distinct patterns. Identify them.
Two patterns: (1) Two separate indexes (inverted for BM25, ANN for dense) fused at query time via Reciprocal Rank Fusion, the Pinecone / Weaviate / Qdrant way.
Imagine you're sorting books by 'most relevant to my question.' One approach: ask your keyword-matching librarian for their ranked list, ask your meaning-matching librarian for theirs, then blend the two lists fairly using a formula. **That's pattern 1 (score fusion).** Another approach: have one super-librarian who looks at both keyword matches AND meaning at the same time and produces a single ranked list directly. **That's pattern 2 (joint scoring).** Both work; the first is easier to operate (two simpler systems) and the second is sometimes more accurate (the librarian can balance the signals on a per-book basis).
Detailed answer & concept explanation~3 min readEverything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example. Click to expand.
Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example. Click to expand.
Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example.
Everything important, quickly.
3 min: name both patterns, identify the canonical fusion (RRF for Pattern 1), cite the vendor mapping (Pinecone/Weaviate/Qdrant vs Vespa), and reject the distractor options.
| Aspect | Pattern 1 (two indexes + RRF) | Pattern 2 (single hybrid) |
|---|---|---|
| Indexes per collection | Two (inverted + ANN) | One (combined) |
| Fusion location | Query-time, after both indexes | Index-time, during traversal |
| Canonical fusion | Reciprocal Rank Fusion (RRF) | Per-document tensor expression |
| Operational complexity | Two writes per insert | One write, complex index |
| Scoring nuance | Uniform across documents | Per-document conditional |
| Canonical vendors | Pinecone, Weaviate, Qdrant | Vespa, Milvus-hybrid mode |
| Best for | RAG retrieval, mixed-query loads | Search/ranking with business rules |
Real products, models, and research that use this idea.
- Pinecone's sparse-dense hybrid: per-record sparse_values + dense values; RRF fusion is automatic via the query API.
- Weaviate's hybrid query exposes an alpha parameter to weight sparse vs dense, layered on RRF-style ranking.
- Qdrant added sparse vectors as a first-class index type in 1.7; client-side RRF or Reciprocal Rank Fusion server-side combines them with dense ANN.
- Vespa powers Spotify search and several large e-commerce platforms via per-document tensor scoring that combines BM25, dense embeddings, and business signals.
- Cohere Rerank v3 is the most common learned reranker layered on top of Pattern 1 hybrid retrieval for RAG; the two-stage architecture (hybrid first-stage + reranker) is the 2026 default for high-quality RAG.
What an interviewer would ask next. Try answering before peeking at the approach.
QWhy is Reciprocal Rank Fusion (RRF) preferred over weighted-sum fusion in production?
QHow does SPLADE differ from classical BM25 in a hybrid setup?
Don't say thisRed flags and common mistakes that signal junior thinking. Click to expand.
Red flags and common mistakes that signal junior thinking. Click to expand.
Believing hybrid search is a single technique. There are two architecturally distinct patterns, and the choice has real operational and quality consequences. Production engineers need to know which pattern their vendor implements.
The night-before-the-interview bullets. Scan these on the way to the call.
Primary sources. Skim if you want the original framing.
Same topic, related formats. Practice these next.