Skip to content

Search

Engram indexes note content for semantic search — finding notes that mean something similar to your query, even when the wording differs. Exact-match search is supported too, but where it runs depends on the scope.

  • Semantic search across the whole vault — vector similarity over embeddings of every note. Finds related ideas, not just literal text. This is what runs from the top-bar search and the command palette.
  • Exact match inside an open noteCtrl/Cmd+F and the editor’s Find/Replace work on the decrypted note in your current session, the same as any text editor.

Vault-wide exact match (substring/regex over raw note text) isn’t something Engram offers — note content is encrypted at rest, so the backend can’t run lexical scans over plaintext without breaking the encryption guarantee. For literal-text search, fall back to Obsidian’s local Search pane, which runs over your on-disk .md files. The editor’s Ctrl/Cmd+F still works for find-within-an-open-note.

Engram and Obsidian search are complementary: semantic in the cloud, literal on disk. Obsidian’s local Search pane supports full regex, case-sensitivity, and file/path filters against the same vault Engram is syncing.

  • Top bar — search icon — semantic
  • Obsidian command palette — semantic search via the plugin, same backend as the web app
  • Obsidian Search pane — local exact / regex / case-sensitive search over the on-disk vault

For an exact phrase, error code, or specific identifier, drop into Obsidian’s local search.

  1. Your query is embedded (the query model is asymmetric to the document model, tuned for retrieval rather than indexing)
  2. Qdrant returns top-K vector matches with binary quantization + rescore
  3. If a reranker is configured (RERANKER_BACKEND=jina + JINA_URL on the backend), candidates are reordered with a 40/60 blend of vector and reranker scores; if not, raw vector ranking is used

The default cloud deployment runs without a reranker today; the Jina adapter is shipped and ready to enable.

Restricting search to a folder is supported through the API — pass a folder=<path> query parameter. A search-box query syntax like folder:work/ is on the roadmap, not yet wired in the UI.

  • Vault is very small (< 20 notes) — fewer embeddings to compare against; results lean noisy until your vault grows
  • Recently imported notes — embedding runs asynchronously via Oban; freshly written notes can take a few seconds to appear in results
  • Highly specific jargon — semantic similarity is best for concepts. For exact identifiers (a function name, an error code), use Obsidian’s local search instead. Hybrid (lexical + vector) is on the roadmap.