Pure scoring functions for memory retrieval ranking.
Summary
Functions
Compute composite score combining relevance, importance, and recency.
Reciprocal Rank Fusion merge of two ranked result lists.
Apply temporal decay to a relevance score.
Functions
@spec composite_score(float(), Nous.Memory.Entry.t(), keyword()) :: float()
Compute composite score combining relevance, importance, and recency.
Default weights: relevance: 0.5, importance: 0.3, recency: 0.2
@spec rrf_merge( [{Nous.Memory.Entry.t(), number()}], [{Nous.Memory.Entry.t(), number()}], keyword() ) :: [{Nous.Memory.Entry.t(), float()}]
Reciprocal Rank Fusion merge of two ranked result lists.
RRF formula: score(d) = sum(1 / (k + rank(d))) across all lists where d appears.
@spec temporal_decay(float(), Nous.Memory.Entry.t(), keyword()) :: float()
Apply temporal decay to a relevance score.
decay = exp(-lambda * hours_since_access) Returns original score if entry is evergreen.