Search and Retrieval

SK Memory provides four search modes that can be used independently or combined. Each queries the project's index and returns results ranked by relevance.

Hybrid search is the recommended default. It runs semantic search and keyword search at the same time, then merges the results.

If both modes find the same chunk, the result is marked hybrid with a boosted score. Chunks found only by semantic search are marked semantic with their similarity score. Chunks found only by keyword search are marked keyword with a score of 1.0.

Results are sorted by score and capped at the requested limit.

If embeddings are unavailable, hybrid search automatically falls back to keyword-only. Search results report whether semantic search was available.

Hybrid search powers the folder tree search panel, the MCP hybrid search tool, and most search throughout the application.

Semantic search finds documents by meaning rather than exact text matches. It converts your query into a vector using the same local model that embedded the document chunks, then compares that vector against every stored chunk.

Results are filtered by a minimum similarity threshold — 0.5 for direct semantic search, 0.3 when it runs as part of hybrid search — and sorted by similarity.

Semantic search requires embeddings. If the embedding model is not available, semantic search returns an error rather than falling back.

A recency-weighted variant blends similarity with how recently a document changed. This is useful when recent documents should rank higher at the same similarity.

Keyword search performs case-insensitive substring matching against chunk content, document titles, file paths, and relative paths. Title matches rank above content matches.

Keyword search does not require embeddings and works on all projects.

Tag search finds documents by their assigned tags, in two logical modes:

AND logic — All specified tags must be present on a document for it to match.

OR logic — At least one of the specified tags must be present.

Both can be combined in a single query. Results include the document title, file type, tags, creation date, and a short content preview.

Where Search Is Available

Folder tree Search tab — The primary search surface. Three mode toggles — Keyword, Smart, and Tag — can be enabled independently. Tag chip suggestions appear as autocomplete. Results show mode badges and similarity percentages. Hover or focus the Smart toggle for a local-embeddings hint, then press F1 to search these User Docs for SK Memory's semantic and hybrid-search behavior. See Folder Tree.

MCP server — Four general project search tools are available to AI clients: hybrid search, semantic search, tag search, and search across all projects. The separate mindmap_search_nodes tool searches the active Mind Map's node-aware index. See MCP Tools Reference.

Files tag filter — Selecting a tag in the folder tree switches Files to tag-filtered results.

Document Info Panel smart links — Uses hybrid search to find semantically related documents and show them as suggestions.

Cluster View — The Forge Graph search field uses semantic search to highlight relevant documents on the canvas.

Chrome extension — The Search SK Memory command opens the desktop search window.

Agent context — Agent tools can search for relevant documents to use as execution context.

Power Strip Doc Search sidecar — Keyword, tag, and semantic search from the floating command bar.

Mind Map Node Discovery

Saving a Mind Map creates or refreshes one derived mindmap-semantic SK document under the map's existing immutable document ID. The live Mind Map and its .mmdata file remain authoritative.

Searchable chunks follow node boundaries. Each one carries the node's existing ID, parent, root-to-node path, level, title, content, tags, relevant relationships, and the map revision that was indexed. Oversized node bodies are split into bounded subchunks that repeat the same node reference. Attachments and Private-note content are not copied into this index.

mindmap_search_nodes searches only the active map's semantic document, keeps the best result per node, filters nodes that no longer exist, and returns current live titles and paths. It reports when the index is older than the active map. Save the map to refresh a missing, stale, or older-format node index, then call mindmap_get_context before editing any returned node.

Search Results

All modes return results in a common shape:

chunk_id — The specific chunk that matched.

document_id — The parent document.

content — The matching chunk text.

document_title — The document's display title.

relative_path and absolute_path — File location.

file_type — The document type, such as md, json, or conversation.

similarity — Relevance score. Semantic results range 0.0 to 1.0. Keyword and tag matches score 1.0. Hybrid matches score at least 1.0.

search_type — Which mode found this result: semantic, keyword, hybrid, or recency.

The MCP search-all-projects tool and the folder tree's "All" scope search across multiple projects. Each project's index is opened individually, searched, and the results merged by score. Each result is tagged with its source project name.

Projects where embeddings are unavailable fall back to keyword search for that project only, without affecting the others in the merge.

Performance

The first semantic search in a project loads all its chunk vectors into memory. Later searches reuse that cache until documents are indexed or deleted.

Search compares the query against every cached vector. This works well for typical project sizes — hundreds to low thousands of documents — but the cost grows linearly with the number of chunks. There is no approximate index, so very large projects will search more slowly.