Standard vector embedding search frequently fails in enterprise Retrieval-Augmented Generation (RAG) when users query exact model part numbers, legal codes, or specific variable names. Implementing hybrid search combining dense semantic embeddings with sparse BM25 lexical token matching resolves keyword blindness and elevates recall accuracy beyond 96%.
1. Reciprocal Rank Fusion (RRF) Mathematical Implementation
Rather than attempting to normalize disparate cosine distance scores and BM25 relevance scores, RRF merges ranking positions directly from both retrievers using a smoothing constant (typically k = 60):
def reciprocal_rank_fusion(dense_ranks, sparse_ranks, k=60):
rrf_scores = {}
for doc_id, rank in dense_ranks.items():
rrf_scores[doc_id] = rrf_scores.get(doc_id, 0.0) + (1.0 / (k + rank))
for doc_id, rank in sparse_ranks.items():
rrf_scores[doc_id] = rrf_scores.get(doc_id, 0.0) + (1.0 / (k + rank))
return sorted(rrf_scores.items(), key=lambda x: x[1], reverse=True)
2. Cross-Encoder Reranking at the Final Retrieval Stage
Passing the top 25 candidate chunks through a lightweight cross-encoder model (such as BAAI/bge-reranker-large) evaluates bidirectional token interactions between query and context, filtering out semantic noise and guaranteeing sub-second response times for LLM synthesis.
3. Chunk Boundary Optimization via AST Parsing
Splitting technical codebases by fixed token counts breaks function bodies across arbitrary lines. Using Abstract Syntax Tree (AST) parsers ensures that classes, methods, and docstrings remain intact within unified semantic blocks.

Leave a Reply