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