Add hybrid-search module: vector, tsvector and BM25 fused with Reciprocal Rank Fusion in Java and SQL over one PostgreSQL table; quality by query type, held-out k check, plans and latency at 50k rows

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_0146opDKBYtADXvkc39zdiyw
This commit is contained in:
Claude
2026-10-22 18:04:49 +00:00
parent d7e68a14af
commit 2ccf1d8d19
26 changed files with 1508 additions and 0 deletions
@@ -0,0 +1,26 @@
# RRF parameters on the 60 queries: k, candidates per list, list weights
--- k, with 20 candidates per list ---
k hit@1 hit@5 MRR@10
1 46/60 58/60 0.851
10 45/60 55/60 0.826
60 46/60 55/60 0.826
200 46/60 55/60 0.825
1000 46/60 55/60 0.825
--- candidates taken from each list, with k = 60 ---
cands hit@1 hit@5 MRR@10
3 41/60 57/60 0.802
5 43/60 59/60 0.828
10 45/60 57/60 0.823
20 46/60 55/60 0.826
50 46/60 55/60 0.829
--- weights (vector : keyword), k = 60, 20 candidates ---
weights hit@1 hit@5 MRR@10
1.0:0.0 41/60 55/60 0.782
1.0:0.5 45/60 56/60 0.822
1.0:1.0 46/60 55/60 0.826
0.5:1.0 42/60 54/60 0.781
0.0:1.0 37/60 50/60 0.692