RAG-Suche
Drückst du Ctrl+K, sammeln sich alle Arbeitsspuren des Arbeitsbereichs in einem einzigen Suchfeld. Auch ohne exakte Wortübereinstimmung findet es anhand der Bedeutung, und da die Embeddings vollständig lokal berechnet werden, gelangt kein Code nach außen.
6 Suchquellen
Abschnitt betitelt „6 Suchquellen“| Quelle | Indizierungsziel | Beispielfrage |
|---|---|---|
code | Text-·Codedateien (über 40 Erweiterungen) | „Die Funktion, die Passwörter speichert” |
db | Definitionen von Tabellen·Views·Indizes·Triggern·Routinen | „Die View, die Bestellbeträge summiert” |
git | Commit-Nachrichten·Diffs | „Der Commit, der letzte Woche den Encoding-Bug behoben hat” |
chat | Inhalte der KI-Chats | „Die Deployment-Methode, die ich gestern die KI gefragt habe” |
work_event | Panel-Aktivitätsverlauf (Öffnen·Bearbeiten·Query-Ausführung usw.) | „Die zuletzt geöffnete Migrationsdatei” |
doc | Markdown-·Dokumentdateien | „Das Dokument zum API-Authentifizierungsablauf” |
Nicht nur Code, sondern auch der Arbeitskontext wie „Wie habe ich letzte Woche nochmal die Tabelle geändert?” wird durchsucht.
Hybride Suchmaschine
Abschnitt betitelt „Hybride Suchmaschine“Eine Anfrage läuft zweigleisig gleichzeitig.
- Vektorsuche — sqlite-vec KNN. Bei ähnlicher Bedeutung findet sie auch bei abweichenden Wörtern.
- Schlüsselwortsuche — FTS5 BM25. Stark bei exakten Bezeichnern·Fehlermeldungen.
Die beiden Ergebnisse werden per RRF (Reciprocal Rank Fusion) verschmolzen, um die finale Reihenfolge zu bilden. Da die eine Methode ergänzt, was die andere verpasst, erzielst du konsistent bessere Ergebnisse als mit einer einzelnen Methode. Pfade wie deprecated / legacy / .bak werden automatisch abgewertet.
Reranking (Opt-in)
Abschnitt betitelt „Reranking (Opt-in)“Willst du die Suchqualität weiter steigern, kannst du den Reranker aktivieren.
- Die 40 besten Kandidaten werden von einem Cross-Encoder-Modell (
bge-reranker-base, mehrsprachig inkl. Koreanisch) 1:1 mit der Anfrage abgeglichen und neu sortiert. - Aktualitätsgewichtung — Bonus für Ergebnisse der letzten 30 Tage, Dämpfung für über 1 Jahr alte Chunks.
- Zitationsgewichtung — je häufiger ein Chunk tatsächlich in KI-Antworten zitiert wurde, desto weiter oben erscheint er.
Codebewusstes Chunking
Abschnitt betitelt „Codebewusstes Chunking“Codedateien werden nicht einfach alle N Zeilen geschnitten. Per tree-sitter-AST-Parsing werden Chunks an Funktions-·Klassen-·Methodengrenzen geteilt (standardmäßig 6 KB), sodass die Suchergebnisse nicht als „halbe Funktion”, sondern als vollständige Sinneinheit erscheinen.
| Unterstützte Sprache | Chunking-Methode |
|---|---|
| Python · JavaScript · TypeScript · TSX | tree-sitter-AST |
| C# · Java · Go · Dart | tree-sitter-AST |
| Sonstige Sprachen · sehr große Dateien | sicherer zeilenweiser Fallback |
Lokales Embedding-Modell
Abschnitt betitelt „Lokales Embedding-Modell“Das Embedding-Modell läuft auf Basis von transformers.js innerhalb der App. Weder API-Schlüssel noch Netzwerkübertragung sind nötig. Bei der ersten Nutzung wird das Modell einmalig heruntergeladen, danach funktioniert es auch offline.
| Modell | Dimension | Größe | Hinweis |
|---|---|---|---|
multilingual-e5-small | 384 | ca. 110 MB | Standard, schnell |
multilingual-e5-base | 768 | ca. 280 MB | Für Koreanisch empfohlen — die Suchqualität verbessert sich merklich |
| MiniLM · bge-Serie | 384 | 90~130 MB | Leichtgewichtig für englischsprachige Projekte |
embeddinggemma-300m | 768 | ca. 600 MB | Beta |
Verwendung
Abschnitt betitelt „Verwendung“-
Drücke
Ctrl+K, um das integrierte Suchfeld zu öffnen. -
Gib in natürlicher Sprache ein.
Der Teil, der das SSH-Passwort speichertDer letzte Woche behobene Encoding-BugDer Commit, der die amount-Spalte zur orders-Tabelle hinzufügt -
Engern den Bereich mit den Quellfilter-Chips (code · db · git · chat · work_event · doc) ein.
-
Per Klick auf eine Ergebniskarte klappt der Inhalt auf, und per Druck auf den ▶-Button springst du zur Original-Datei·Stelle.
Automatische Verknüpfung mit dem KI-Chat
Abschnitt betitelt „Automatische Verknüpfung mit dem KI-Chat“Der KI-Chat durchsucht den Index automatisch per workspace_search-Tool, bevor der Nutzer eine Nachricht sendet. Relevanter Code · frühere Gespräche · DB-Schema werden als Kontext herangezogen, um die Genauigkeit der Antwort zu erhöhen. Kein zusätzlicher Eingriff nötig, und zitierte Dateien werden im Abschnitt „Referenz:” unter der Antwort angezeigt.
Indizierungsverwaltung
Abschnitt betitelt „Indizierungsverwaltung“Automatische Indizierung
Abschnitt betitelt „Automatische Indizierung“- Wird ein Dateispeichern oder eine DB-Schema-Änderung erkannt, wird im Hintergrund inkrementell indiziert.
- Modusauswahl — wähle in den Chat-Einstellungen
eco/balanced/fast, um das Gleichgewicht zwischen CPU-Last und Übernahmegeschwindigkeit zu steuern. - Status-Dashboard — prüfe in den Chat-Einstellungen → Registerkarte RAG-Index-Status die Chunk-Anzahl pro Quelle und die Indizierungs-Queue in Echtzeit.
Ausschlussmuster
Abschnitt betitelt „Ausschlussmuster“.gitignore wird automatisch respektiert, und die folgenden Pfade werden standardmäßig ausgeschlossen.
node_modules/ .git/ dist/ build/Brauchst du weitere Ausschlüsse, trage sie in die Datei .termeditignore im Projektstamm ein (gitignore-Syntax). DB-Objekte schließt du im Abschnitt [db] mit Glob-Mustern aus.
# Beispiel für .termeditignorevendor/*.generated.tscoverage/
[db]*.tmp_*BACKUP_*Speicherst du die Muster, werden auch bereits indizierte Chunks sofort bereinigt.
Index-Bereinigungstools
Abschnitt betitelt „Index-Bereinigungstools“Wird der Index in einem alten Arbeitsbereich aufgebläht, nutze die Bereinigungstools des Dashboards.
| Tool | Rolle |
|---|---|
| Orphan Scan | Entfernt verbliebene Chunks gelöschter Dateien |
| Pattern Purge | Entfernt gesammelt nach Pfadmuster (z. B. dist/**) |
| Stale Cleanup | Bereinigt lange nicht zitierte Chunks |
| Fehlschläge wiederholen | Verarbeitet fehlgeschlagene Indizierungseinträge erneut |
Index-Speicherort & Größe
Abschnitt betitelt „Index-Speicherort & Größe“Der Index wird pro Arbeitsbereich als SQLite-Datei (workspace.sqlite) gespeichert. Verschiebst du den Arbeitsbereich-Ordner, wird neu indiziert.
Die Größe ist unbedenklich. Bei 10.000 Chunks beträgt der Vektordaten etwa 15 MB.
Das Suchfeld öffnet sich nicht
→ Nutze Ctrl+K. Kollidiert der Eingabefokus mit einem anderen Tastenkürzel, klicke einmal in einen leeren Bereich und versuche es erneut.
Es gibt keine Ergebnisse oder sie sind seltsam
→ Direkt nach dem ersten Start können die Ergebnisse leer sein, bis das Laden/Herunterladen des Modells abgeschlossen ist. Prüfe den Fortschritt im Indizierungs-Status-Dashboard. Bei viel Rauschen schließe unnötige Pfade mit .termeditignore aus.
Es erscheinen weiterhin alte Ergebnisse → Führe in der Registerkarte Index-Status → Orphan Scan oder Stale Cleanup aus. Hast du gerade das Modell gewechselt, warte, bis die Neuindizierung abgeschlossen ist.
Was passiert mit dem bestehenden Index, wenn ich das Embedding-Modell wechsle? → Wechselst du das Modell, wird der bestehende Index automatisch gelöscht und von Grund auf neu indiziert. Je nach Projektgröße kann das einige Minuten dauern.
Werden auch Remote-Ordner (SSH/SFTP) indiziert?
→ Noch nicht unterstützt. In Remote-Projektordnern ist die RAG-Code-Suche deaktiviert, und die KI durchsucht direkt mit den Tools file_list_dir + file_read.
In KI-Antworten wird Code falsch zitiert
→ Passt du die Quellfilter an oder schließt du Rausch-Dateien mit .termeditignore aus, verbessert sich die Zitatqualität. Aktivierst du die Reranking-Option, werden wenig relevante Chunks nach hinten gedrängt.
Wie du es mit anderen Funktionen verknüpft nutzt, findest du in den Dokumenten KI-Chat, Editor und DB-Client.