The Closing Window
Bedeutung in deinen Notizen finden mit CK Search image
Photo by Greg Rakozy on Unsplash

Bedeutung in deinen Notizen finden mit CK Search

AI Insights

TL;DR

CK Search bringt lokale semantische Suche in jedes Verzeichnis, mit einem eingebauten MCP-Server für die Integration von AI Agents. Semantische Suche überwindet die Grenzen der Stichwortsuche, indem sie Notizen nach Bedeutung findet, nicht nach Zeichenkettenabgleich. Dieser Beitrag führt durch die kinderleichte Installation, Konfiguration und erklärt, wie semantische Suche findet, was Stichwortsuche nicht kann. Es ist keine Magie, und ich werde ehrlich sagen, wo es nicht gut funktioniert.

Wenn die Suche nicht sieht, was du meinst

Im ersten Beitrag habe ich den Moment beschrieben, in dem gute Organisation trotzdem nicht reicht. Du kannst perfekt taggen und trotzdem nicht finden, was du brauchst, weil du nach einem Konzept suchst und deine Notiz andere Wörter verwendet hat. Das ist die Obergrenze der Stichwortsuche.

Ich habe ungefähr 1.900 Markdown-Dateien in drei Obsidian Vaults. Falls du kein Obsidian-Nutzer bist, kannst du dir das einfach als 1.900 Textdateien in drei verschiedenen Ordnern vorstellen. Sie sind getaggt, verlinkt und mit Frontmatter strukturiert, oder einfacher gesagt, mit Seiteneigenschaften. Die Organisation ist solide. Aber wenn ich nach „authentication" suche, finde ich meine Notiz über „session token management" nicht. Wenn ich nach „AI assistant" suche, verpasse ich die Notiz über „Claude Desktop". Die Information ist da. Die Suche kann sie nur nicht sehen.

Obsidians eingebaute Suche, und die meisten Plugins die sie erweitern, funktionieren nach dem gleichen Prinzip: Die Zeichen, die du eingegeben hast, mit den Zeichen in deinen Dateien abgleichen. Manche fügen Funktionen hinzu, um die Stichwort-Treffer zu verbessern, aber sie suchen immer noch nur nach Text, nicht nach Bedeutung.

Semantische Suche funktioniert anders. Statt Zeichenketten abzugleichen, wandelt sie sowohl deine Suchanfrage als auch deine Notizen in numerische Repräsentationen um und misst, wie nah sie sich in der Bedeutung sind. „Authentication" und „session token management" landen in diesem numerischen Raum nah beieinander, weil sie das gleiche Konzept behandeln. Die Suche versteht, was du meinst, nicht nur was du getippt hast.


Es gibt mehrere Tools, die semantische Suche zu Obsidian hinzufügen können. Ich habe einige evaluiert, bevor ich mich für CK Search entschieden habe. CK Search ist nicht Obsidian-spezifisch. Es durchsucht jedes Verzeichnis mit Textdateien.

Die zwei Dinge, die mir am wichtigsten waren: CK Search funktioniert ohne laufendes Obsidian, und es hat einen eingebauten MCP-Server. Das erste bedeutet, dass ich von der Kommandozeile aus suchen kann, aus Skripten, von überall. Das zweite bedeutet, dass Claude Code es direkt als Tool nutzen kann, ohne zusätzliche Abhängigkeiten, Konfiguration oder Setup. Es ist außerdem in Rust gebaut, einer Sprache, die für ihre Geschwindigkeit bekannt ist.

Eines vorweg: CK Search hat keine GUI. Es gibt kein Obsidian-Plugin mit einer Suchleiste. Es ist ein Kommandozeilen-Tool, und das ist Absicht — es ist dafür gebaut, von AI Agents und Skripten genutzt zu werden, nicht manuell durchgeklickt. Wenn du eine Point-and-Click semantische Suche in Obsidian suchst, sind Smart Connections oder Copilot vielleicht besser geeignet. Wenn du ein System baust, in dem ein AI Agent deine Notizen programmatisch abfragt, ist CK Search das bessere Tool.

Tool-Vergleich

CK Search Smart Connections Copilot for Obsidian
Suchtyp Semantic + hybrid Semantic Semantic
MCP-Unterstützung Eingebauter Server Plugin Keine
Multi-Vault Jedes Verzeichnis Pro Vault Pro Vault
Erfordert Obsidian Nein Ja Ja
Local-first Ja Ja Variiert

Installation

CK Search wird über Cargo installiert, den Rust-Paketmanager. Falls du Rust nicht hast, brauchst du es zuerst.

# Install Rust (if you don't have it)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.cargo/env

# Install CK Search
cargo install ck-search

# Verify
ck --version

Das war's. Keine Node.js-Runtime, keine Python-Umgebung, kein Docker-Container. Ein Befehl, ein Tool.


Deine erste semantische Suche

Bevor du irgendetwas anderes konfigurierst, teste es von der Kommandozeile:

# Semantic search — finds by meaning
ck --sem "ideas for improving workflow" /path/to/your/vault

Beim ersten Mal baut CK Search einen Index auf. Es liest jede Markdown-Datei im Verzeichnis und speichert die numerische Repräsentation davon in einem .ck/-Ordner. Jede Suche danach ist quasi sofort — es re-indexiert nur Dateien, die sich geändert haben. Kein Hintergrundprozess, kein Daemon, kein Watcher. CK Search läuft nur, wenn du suchst. Null Ressourcenverbrauch den Rest der Zeit.

Probier ein paar Suchanfragen aus und vergleiche sie mit dem, was Obsidians eingebaute Suche liefert. Hier wirst du den Unterschied spüren. Suche nach einem Konzept, von dem du weißt, dass es in deinen Notizen ist, aber mit anderen Wörtern als du geschrieben hast. Semantische Suche wird es finden. Stichwortsuche nicht.

CK Search unterstützt auch Stichwortsuche und einen Hybrid-Modus (semantisch + Stichwort kombiniert), aber ich nutze es hauptsächlich für semantische Suche. Mein Stack hat Stichwort-Tools bereits abgedeckt: grep, Obsidians eingebaute Suche, das Omnisearch-Plugin. Der einzigartige Wert von CK Search ist, dass es Bedeutungen versteht. Nichts anderes in meinem Stack kann das.


Verbindung mit einem AI Agent

Wenn du Claude Code oder einen anderen AI Agent nutzt, wird CK Search als MCP-Server dramatisch nützlicher. MCP (Model Context Protocol) ist ein offener Standard, um AI-Tools mit externen Datenquellen und Fähigkeiten zu verbinden. Claude Code unterstützt es nativ.

Der einfachste Ansatz für die Einrichtung ist eine .mcp.json-Datei:

{
  "mcpServers": {
    "ck-search": {
      "command": "/Users/yourname/.cargo/bin/ck",
      "args": ["--serve"]
    }
  }
}

Finde deinen tatsächlichen Pfad mit which ck und ersetze den command entsprechend.

Sobald verbunden, bekommt Claude Code Zugriff auf Tools wie:

  • semantic_search — das wichtigste. Konzeptuelle, bedeutungsbasierte Suche.
  • hybrid_search — semantisch + Stichwort kombiniert.

In der Praxis, wenn ich Claude Code eine Frage über meine Notizen stelle, ruft es semantic_search mit einer natürlichsprachlichen Anfrage auf, bekommt gerankte Ergebnisse mit Dateipfaden und Ausschnitten zurück, und liest dann die besten Treffer, um eine Antwort zu synthetisieren.


Was indexieren (und was nicht)

CK Search indexiert alles in dem Verzeichnis, auf das du es richtest, minus was auch immer du ausschließt. Du willst alles überspringen, was kein sinnvoller Textinhalt ist. Das Schlüsselprinzip: Indexiere nur Dateien, die Wissen enthalten, das du nach Bedeutung suchen möchtest. App-Konfiguration und Mediendateien sind das nicht. Sie sind Rauschen, das den Index verwässert.

Um Dateien auszuschließen, erstelle eine .ckignore-Datei im Root des Verzeichnisses, das du durchsuchen willst.

CK Search indexiert textbasierte Dateien wie Markdown, Code und Plaintext. Wenn du PDFs, Bilder mit Text oder Office-Dokumente hast, brauchst du dafür ein anderes Tool. Ich nutze das Omnisearch Obsidian-Plugin, das PDFs via Textextraktion und Bilder via OCR verarbeitet. Aber das ist ein anderer Beitrag.


Wann semantische Suche schlecht ist

Ich will hier ehrlich sein, weil zu viele Beiträge über AI-Tooling die Magie übertreiben.

Semantische Suche ist schlecht bei:

  • Exakten Zeichenketten. Du suchst nach einer Fehlermeldung, einem Funktionsnamen, einem bestimmten Tag? Nimm grep oder Obsidians eingebaute Suche. Semantische Suche liefert dir konzeptuell verwandte Ergebnisse, und das ist nicht das, was du willst, wenn du die exakte Datei brauchst, die ERROR_CODE_4032 enthält.
  • Kurzen, allgemeinen Anfragen. Nach „meeting" zu suchen liefert alles, was irgendwie mit Meetings zu tun hat. Nicht hilfreich.
  • Disambiguierung. „Apple" die Firma und „apple" die Frucht sind die gleiche numerische Repräsentation. Kontext hilft, aber es ist nicht perfekt.
  • Frontmatter (Seiteneigenschaften) Abfragen. Du suchst Notizen mit einem bestimmten Tag oder Datum? Das sind strukturierte Daten. Nimm grep mit einer Regex, nicht semantische Suche.
  • Kürzlich hinzugefügtem Inhalt. Wenn du gerade eine Notiz erstellt hast, ist sie nicht im Index, bis die nächste Suche eine Re-Indexierung geänderter Dateien auslöst. Das ist normalerweise kein Problem, aber gut zu wissen.

Die ehrliche Einschätzung: Semantische Suche ist ein Werkzeug, nicht das einzige Werkzeug. Sie füllt eine bestimmte Lücke, die Stichwortsuche nicht kann. Aber Stichwortsuche füllt Lücken, die semantische Suche nicht kann. Das beste Setup nutzt beides.


Das große Ganze

CK Search ist ein Teil eines größeren Suchsystems, das ich für meine Wissensdatenbank gebaut habe.

Der vollständige Stack, kurz zusammengefasst:

  • CK Search: Semantische Suche über Markdown-Dateien (was dieser Beitrag behandelt)
  • Grep: Exakter Text- und Regex-Abgleich (eingebaut, null Setup)
  • Omnisearch: Stichwortsuche über alle Dateitypen inklusive PDFs und Bilder mit OCR
  • Sift: Ein eigenes RAG- und temporales Knowledge-Graph-System für eine externe aber verwandte Wissensdatenbank (getrennt von Obsidian)

Wenn mein AI Agent eine Suchanfrage bearbeitet, führt er all diese parallel aus und synthetisiert die kombinierten Ergebnisse. Aber das ist ein späterer Beitrag. Für jetzt ist CK Search allein schon ein deutliches Upgrade gegenüber reiner Stichwortsuche.


Was kommt als Nächstes

Der nächste Beitrag behandelt, wie ich eine externe Wissensdatenbank mit Sift gebaut habe, einem Open-Source-System, das Vector Search, RAG und einen temporalen Knowledge Graph kombiniert, um über das hinauszugehen, was ein einzelnes Vault-Such-Tool leisten kann. Dein Wissen lebt nicht alles in Markdown-Dateien. Forschungsarbeiten, Webartikel, YouTube-Videos, Podcasts, Referenzdokumente — das Zeug, das du von außerhalb deines Vaults gesammelt hast — braucht auch ein Zuhause. Und sobald es eins hat, kannst du anfangen, Fragen über alles davon zu stellen und Antworten mit Quellen zu bekommen.


Dieser Beitrag ist Teil der AI-Powered Knowledge Management Series. Vorheriger: From Folders to Knowledge Base. Nächster: Beyond Obsidian — Building an External Knowledge Base with Sift.

Powered by Buttondown.