Search architecture
How Nowledge Mem combines six search strategies to find the right memory, even when the words don't match.
Searching personal knowledge is different from searching the web. You are looking for things you saved yourself, in your own words, sometimes months ago. The biggest challenge is not speed. It is the gap between how you phrase a question now and how you phrased the answer then.
Nowledge Mem addresses this by searching from multiple angles at once, then blending the results.
Six search strategies
Every search query runs through up to six parallel strategies:
Semantic search. Compares the meaning of your query against the meaning of each memory using vector embeddings. "API authentication" finds "JWT token setup" even though the words are different. This is the primary signal for most queries.
Full-text search. Keyword matching with language-aware tokenization, including CJK (Chinese, Japanese, Korean) support. Useful when you remember exact terms, names, or code identifiers.
Entity search. Uses the knowledge graph to find memories linked to relevant entities. Searching "database performance" can surface a memory about "PostgreSQL indexing" through their shared entity connections, even if the memory text never mentions "database performance."
Community search. The knowledge graph groups related entities into communities (clusters of strongly connected nodes). Searching within a community surfaces memories you might not find through direct keyword or semantic matching.
Label search. If your query matches a label you have assigned, memories with that label get a relevance boost. This lets your own organizational structure influence search results.
Graph traversal. Follows relationship edges (EVOLVES chains, entity links, Crystal sources) to find memories connected to your query through the graph structure rather than text similarity.
Fast mode and deep mode
Not every search needs all six strategies at full power.
Fast mode (under 100ms for most queries) runs semantic search, full-text search, and entity matching in parallel. It handles about 90% of queries well. This is the default.
Deep mode adds LLM-powered analysis on top of the fast results. It classifies your query intent (are you looking up a fact? exploring a concept? tracing a relationship?) and adjusts strategy weights accordingly. It can also use HyDE (hypothetical document embeddings) to bridge large expression gaps, and optionally re-evaluate top results with an LLM for better ranking.
Deep mode is triggered automatically for queries that include temporal intent ("what did I decide last quarter?"), or when fast mode results are low-confidence. You can also trigger it manually.
How results are ranked
The final ranking blends signals from the strategies above with memory-level scoring:
- Semantic relevance is the dominant factor. A memory that is semantically close to your query will rank high regardless of other signals.
- Decay score gives a modest boost to recently and frequently accessed memories. See memory decay for details.
- Confidence score provides a small additional boost to memories with strong evidence (many accesses, EVOLVES links, Crystal citations).
Crystals (synthesized reference knowledge) receive a ranking boost because they represent corroborated, high-confidence knowledge. Latest versions in EVOLVES chains also rank higher than superseded ones.
Every result includes a source_thread_id when available. If an agent or tool needs more context beyond the memory itself, it can pull the original conversation.
Temporal search
Queries with time references ("what happened in 2020?", "decisions from last quarter") activate temporal matching. The system tracks two independent timestamps for each memory:
- Event time: when the thing happened
- Record time: when you saved it
Temporal matching adds a relevance boost but does not override semantic relevance. A memory from the right time period still needs to be semantically relevant to rank well. Time is a signal, not a filter.
Date precision is tracked explicitly. If a memory's event time is known only to the year, the system will not pretend to know the month.
Next steps
- Memory decay explains the decay and confidence scores that influence ranking
- Knowledge evolution covers how EVOLVES chains affect what appears in results
- Search & Relevance is the reference page with practical search tips