Skip to content

feat: normalize search scores to 0–1 similarity range#8

Merged
daniel-harperdb merged 1 commit intofeat/memory-countfrom
feat/score-normalization
Mar 19, 2026
Merged

feat: normalize search scores to 0–1 similarity range#8
daniel-harperdb merged 1 commit intofeat/memory-countfrom
feat/score-normalization

Conversation

@daniel-harperdb
Copy link
Collaborator

Summary

Adds similarity score normalization to MemorySearch and SynapseSearch results.

  • Converts HNSW cosine $distance (range 0–2) to similarity (range 0–1) via Math.max(0, 1 - $distance / 2)
  • Adds similarity field alongside existing $distance on each result
  • Required for LangChain compatibility (expects 0–1 similarity scores)

Stacked on #7 (memory-count).

Test plan

  • Unit tests included (test/score-normalization.test.js)
  • Manual test: verify similarity=1.0 for exact match, ~0 for distant vectors
  • Verify $distance field is still present for backwards compatibility

@daniel-harperdb daniel-harperdb force-pushed the feat/score-normalization branch from e5d6033 to 4312696 Compare March 19, 2026 20:57
@daniel-harperdb daniel-harperdb merged commit e589055 into feat/memory-count Mar 19, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant