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.
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
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.