Zum Inhalt springen

Suche

Engram indexiert Notizinhalte für die semantische Suche, die Notizen findet, die inhaltlich Ähnliches bedeuten wie deine Anfrage, auch wenn die Formulierung abweicht. Exakte Suche wird ebenfalls unterstützt, aber wo sie läuft, hängt vom Umfang ab.

  • Semantische Suche über den ganzen Vault. Vektorähnlichkeit über Embeddings jeder Notiz. Findet verwandte Ideen, nicht nur den wörtlichen Text. Das läuft heute im Suchpanel der Web-App.
  • Stichwort- und Hybridsuche. Das Backend indexiert Notizen außerdem für verschlüsselungssichere Stichwortsuche (lexikalisch) und einen Hybridmodus, der lexikalische und Vektorergebnisse zusammenführt (siehe unten). Diese sind im Backend ausgeliefert; das Suchpanel der Web-App bietet noch keinen Moduswechsel an, es stellt also vorerst semantische Anfragen.
  • Exakte Suche in einer geöffneten Notiz. Ctrl/Cmd+F und Suchen/Ersetzen des Editors arbeiten auf der entschlüsselten Notiz in deiner aktuellen Sitzung, wie in jedem Texteditor.

Engram unterstützt die Stichwortsuche (lexikalisch) über deinen gesamten Vault, und zwar ohne die Verschlüsselung im Ruhezustand zu brechen. Statt Klartext zu durchsuchen, indexiert das Backend pro Chunk einen Sparse-Vektor, der über HMAC(your vault key, token) geschlüsselt ist. So kann der Server Suchbegriffe mit dem Index abgleichen, ohne je lesbaren Notiztext zu besitzen. Die Modi Stichwort, semantisch (Vektor) und hybrid (lexikalisch + Vektor, serverseitig per Reciprocal-Rank-Fusion verschmolzen) sind im Backend alle live.

Das bedeutet, dass eine echte Substring-/Regex-Suche über den Rohtext serverseitig weiterhin nicht möglich ist (der Index arbeitet auf Tokens, nicht auf Zeichen). Für Regex, Groß-/Kleinschreibung oder pfadgefilterte Literal- Suche bleibt deshalb die lokale Suche von Obsidian (über deine .md-Dateien auf der Festplatte) das richtige Werkzeug. Auch Ctrl/Cmd+F im Editor funktioniert zum Suchen innerhalb einer geöffneten Notiz.

Engram und die Suche von Obsidian ergänzen sich: semantisch, per Stichwort und hybrid in der Cloud; vollständige Regex-, Groß-/Kleinschreibung- und pfadgefilterte wörtliche Suche auf der Festplatte. Das lokale Suchpanel von Obsidian läuft über denselben Vault, den Engram synchronisiert.

  • Suchpanel der Web-App (die Suchleiste): heute semantische Anfragen
  • Obsidian-Plugin sucht gegen dasselbe Backend wie die Web-App
  • Suchpanel von Obsidian für lokale Regex-, Groß-/Kleinschreibung- und wörtliche Pfadsuche über den Vault auf der Festplatte

Für ein Regex-Muster oder einen pfadbezogenen wörtlichen Treffer wechsle in die lokale Suche von Obsidian.

  1. Deine Anfrage wird eingebettet (das Anfragemodell ist asymmetrisch zum Dokumentmodell, auf Abruf statt auf Indexierung abgestimmt)
  2. Qdrant liefert die Top-K-Vektortreffer mit binärer Quantisierung + Rescore
  3. Ist ein Reranker konfiguriert (RERANKER_BACKEND=jina + JINA_URL im Backend), werden die Kandidaten mit einer 40/60-Mischung aus Vektor- und Reranker-Score neu geordnet; andernfalls gilt das reine Vektor-Ranking

Das Standard-Cloud-Deployment läuft heute ohne Reranker; der Jina-Adapter ist ausgeliefert und bereit zum Einschalten.

Die Suche auf einen Ordner einzuschränken, ist über die API möglich. Gib den Query-Parameter folder=<path> mit. Eine Abfragesyntax im Suchfeld wie folder:work/ steht auf der Roadmap, ist aber noch nicht in der Oberfläche verdrahtet.

  • Der Vault ist sehr klein (< 20 Notizen). Weniger Embeddings zum Vergleichen; die Ergebnisse tendieren zum Rauschen, bis dein Vault wächst
  • Kürzlich importierte Notizen. Das Embedding läuft asynchron über Oban; frisch geschriebene Notizen können ein paar Sekunden brauchen, bis sie in den Ergebnissen auftauchen
  • Sehr spezifischer Fachjargon. Semantische Ähnlichkeit ist bei Konzepten am besten. Für exakte Bezeichner (einen Funktionsnamen, einen Fehlercode) passen Stichwort- und Hybridsuche (lexikalisch + Vektor) besser. Beide sind im Backend live, die Oberfläche in der Web-App folgt noch. Bis dahin deckt die lokale Suche von Obsidian exakte Bezeichner ab.