Neural Search Engine
Hybrid retrieval for technical documentation, fully local. Every query runs dense BGE-large and SPLADE sparse retrieval in Qdrant and fuses the two rankings with weighted Reciprocal Rank Fusion. A LangGraph router and a local Gemma model turn the results into cited answers.
Engineers search docs with both intent ("why does my proxy return 502") and exact tokens (flags, error codes, file names). Dense models handle the first, sparse models the second, and neither handles both.
Two indexes: 320-token chunks stored twice in Qdrant: 1024-d BGE-large vectors in HNSW and SPLADE sparse vectors in an inverted index
Fusion: Weighted RRF with 1-based ranks, k = 10 selected on the dev split, computed client-side after probing Qdrant’s built-in RRF
Dynamic weights: Queries with identifiers, paths or error codes lean towards SPLADE; natural-language questions lean dense
Answers: A router picks the local index or SearXNG web search; Gemma 4 12B answers only from numbered passages and cites them
0.371 — nDCG@10 on BEIR CQADupStack test (BM25: 0.293)
0.761 — Recall@100, dev-tuned weighted RRF
50ms — p50 retrieval: both encoders, Qdrant, fusion
0.2ms — p50 RRF fusion
↖ fuse ranks, not scores