Skip to content

v2.14.0 - Normalized Weighted Search Scoring & Candidate Pool Expansion

Choose a tag to compare

@spelech spelech released this 18 Sep 05:16
· 29 commits to main since this release
915cf7f

What's New in v2.14.0

🎯 Normalized Linear Weighted Search Scoring (0.0 – 1.0 Scale)

  • Linear Weighted Score Fusion: Replaced Qdrant server-side Reciprocal Rank Fusion (Fusion.RRF) with Normalized Linear Weighted Fusion ($\alpha \cdot \text{Dense} + (1 - \alpha) \cdot \text{Sparse}$, with default $\alpha = 0.7$).
  • Intuitive Score Scale: Clamped dense cosine similarity to [0.0, 1.0] and normalized sparse BM25 scores relative to the query candidate maximum ($S_{\text{sparse}} / \max(S_{\text{sparse}}, 1.0)$), ensuring all final search scores strictly fall between 0.0 and 1.0 (0% – 100%).
  • Expanded Candidate Retrieval Depth: Increased candidate retrieval depth from limit * 2 to $\max(\text{limit} \times 5, 50)$ across concurrent dense and sparse streams in a single query_batch_points roundtrip, eliminating cross-modality cutoff mismatches.
  • Configurable Weighting: Added HYBRID_DENSE_WEIGHT environment variable support (default: 0.7) to allow operators to fine-tune semantic vs keyword weighting.
  • UI & Tool Polish:
    • Search Inspector displays formatted confidence and raw score: Score: 80.5% (0.8049).
    • MCP search tools (search_code, search_docs) display Relevance Score: X.XXXX (XX.X%).
    • Overview tab retrieval strategy reflects Dense + BM25 Normalized Weighted Fusion.

🧪 Automated Test Verification

  • Pytest Backend: 496 passed (100%).
  • Vitest Frontend: 289 passed across 27 test files (100%).
  • Requirements Matrix: 934 automated tests verified and synchronized.