Nous.Memory.Search (nous v0.13.3)
View SourceHybrid search orchestrator for the memory system.
Runs text and vector searches in parallel, merges results via Reciprocal Rank Fusion, applies temporal decay and composite scoring, and returns the top N results.
When no embedding provider is configured, falls back to text-only search.
Summary
Functions
Search memories using hybrid text + vector retrieval.
Types
@type search_opts() :: [ scope: map() | :global, limit: pos_integer(), min_score: float(), type: Nous.Memory.Entry.memory_type() | nil, scoring_weights: keyword(), decay_lambda: float(), now: DateTime.t() ]
Functions
@spec search(module(), term(), String.t(), module() | nil, keyword()) :: {:ok, [{Nous.Memory.Entry.t(), float()}]} | {:error, term()}
Search memories using hybrid text + vector retrieval.
Options
:scope- Map of scoping fields to filter by, or:globalfor no filtering:limit- Maximum results to return (default: 10):min_score- Minimum composite score threshold (default: 0.0):type- Filter by memory type (:semantic,:episodic,:procedural):scoring_weights- Override default[relevance: 0.5, importance: 0.3, recency: 0.2]:decay_lambda- Temporal decay rate (default: 0.001)