Retrieval · PRISM, STAND 8

Hybrid retrieval with Reciprocal Rank Fusion for long-tail queries

Fusing BM25 with dense embeddings recovered the niche recruiter queries that either method alone kept missing.

Shubham Ubhe · 2026

The problem

Recruiter queries are long-tail by nature: a rare framework name, an acronym, a certification code, a very specific combination of skills. Dense embeddings are good at meaning but tend to blur exact rare terms together. Lexical search (BM25) nails exact terms but misses paraphrases. On niche queries, each method alone left relevant candidates on the table.

Approach

query→ BM25 ranking+ dense ranking (text-embedding-3-large)→ Reciprocal Rank Fusion

Both retrievers run independently and return ranked lists. Reciprocal Rank Fusion combines them using only rank positions:

score(d) = Σr ∈ retrievers 1 / (k + rankr(d))

The appeal for a production system is what RRF doesn't need: no score normalisation between BM25 and cosine similarity, no learned weights, no training data. A document that ranks well in either list surfaces; one that ranks well in both rises to the top.

Result

The fused retriever significantly improved recall on niche recruiter queries compared with either method alone, and it became the retrieval backbone of PRISM's ranking stage.

Where else it showed up

The same pattern — lexical + dense, fused — was the core of my earlier log root-cause analysis system, where exact error codes and stack-trace tokens matter as much as semantics.