Hybrid Search — Evidence Dashboard

LoC breakdown, RRF configurability, and result overlap across SynapseKit, LangChain, and LlamaIndex on an identical hybrid search task.

Lines of Code — Benchmark #11
RRF Configurability Score
RRF Parameter Control — Per Framework
Parameter SynapseKit LangChain LlamaIndex Notes
bm25_weight Yes Yes No Equal weighting only in LlamaIndex
vector_weight Yes Yes No Same — no per-retriever tuning
rrf_k constant Yes Yes (as c) No Fixed internally in LlamaIndex
Retriever count 2 only Unlimited Unlimited SK locked to BM25 + vector
Async support Yes Yes (ainvoke) Yes (use_async=True) All three support concurrent retrieval
Score (out of 5) 4/5 5/5 3/5 LangChain wins on configurability
Result Overlap — Query: "How does hybrid search combine BM25 and vector retrieval?"
0.75
Jaccard
LangChain vs SynapseKit
3/3 shared
0.75
Jaccard
LangChain vs LlamaIndex
3/3 shared
0.50
Jaccard
LlamaIndex vs SynapseKit
2/3 shared
Rank SynapseKit LangChain LlamaIndex
1 Vector search uses dense embeddings and cosine similarity… TF-IDF and BM25 both use term frequency, but BM25 adds… Hybrid search combines BM25 keyword matching with vector…
2 Hybrid search combines BM25 keyword matching with vector… Vector search uses dense embeddings and cosine similarity… Vector search uses dense embeddings and cosine similarity…
3 BM25 is a probabilistic ranking function based on term… Hybrid search combines BM25 keyword matching with vector… TF-IDF and BM25 both use term frequency, but BM25 adds…
All three retrieve the same 4-document pool with different rank orders. Rank divergence is driven by random vector proxies used in the demo — production results with real embeddings will show higher agreement. The retrieval quality question is secondary to the configurability question.
www.engineersofai.com · AI Letters #20 · LLM Showdown #11 · Kaggle CPU