RAG統合検索
Ctrl+K を押すと、ワークスペースのすべての作業の痕跡が1つの検索ウィンドウに集まります。単語が正確に一致しなくても意味で見つけ出し、埋め込みはすべてローカルで計算されるため、コードが外部に出ることはありません。
6つの検索ソース
Section titled “6つの検索ソース”| ソース | インデックス対象 | 質問例 |
|---|---|---|
code | テキスト·コードファイル(40以上の拡張子) | 「パスワードを保存する関数」 |
db | テーブル·ビュー·インデックス·トリガー·ルーチンの定義 | 「注文金額を合算するビュー」 |
git | コミットメッセージ·diff | 「先週のエンコードバグ修正コミット」 |
chat | AIチャットの会話内容 | 「昨日AIに聞いたデプロイ方法」 |
work_event | パネル活動記録(開く·編集·クエリ実行など) | 「最近開いたマイグレーションファイル」 |
doc | マークダウン·ドキュメントファイル | 「API認証手順のドキュメント」 |
コードだけでなく、「先週あのテーブルどう直したっけ?」のような作業の文脈まで検索されます。
ハイブリッド検索エンジン
Section titled “ハイブリッド検索エンジン”1つのクエリが2系統で同時に実行されます。
- ベクトル検索 — sqlite-vec KNN。意味が似ていれば単語が違っても見つけます。
- キーワード検索 — FTS5 BM25。正確な識別子·エラーメッセージに強いです。
2つの結果を RRF(Reciprocal Rank Fusion)で融合し、最終順位を付けます。一方の方式が見逃した結果をもう一方が補完するため、単独の方式より一貫して良い結果が得られます。deprecated / legacy / .bak のパスは自動的に減点処理されます。
リランキング(オプトイン)
Section titled “リランキング(オプトイン)”検索品質をさらに引き上げたい場合は、リランカーを有効にできます。
- 上位候補40個を cross-encoder モデル(
bge-reranker-base、日本語を含む多言語)がクエリと1:1で照合して再ソートします。 - 最新性の重み — 直近30日の結果に加点、1年以上前のチャンクは減衰します。
- 引用回数の重み — AIの回答で実際に引用された回数が多いほど上位に上がります。
コードを理解するチャンキング
Section titled “コードを理解するチャンキング”コードファイルは単純にN行ずつ切るわけではありません。tree-sitter AST パースで関数·クラス·メソッドの境界でチャンクを分け(デフォルト6 KB)、検索結果が「関数の半分」ではなく、完全な意味単位として出てきます。
| 対応言語 | チャンキング方式 |
|---|---|
| Python · JavaScript · TypeScript · TSX | tree-sitter AST |
| C# · Java · Go · Dart | tree-sitter AST |
| その他の言語 · 超巨大ファイル | 行単位の安全フォールバック |
ローカル埋め込みモデル
Section titled “ローカル埋め込みモデル”埋め込みモデルは transformers.js ベースでアプリ内で実行されます。APIキーもネットワーク送信も不要です。初回使用時にモデルを一度だけダウンロードし、以降はオフラインでも動作します。
| モデル | 次元 | サイズ | 備考 |
|---|---|---|---|
multilingual-e5-small | 384 | 約110 MB | デフォルト、高速 |
multilingual-e5-base | 768 | 約280 MB | 日本語推奨 — 検索品質が目に見えて向上します |
| MiniLM · bge 系 | 384 | 90~130 MB | 英語中心プロジェクト向けの軽量 |
embeddinggemma-300m | 768 | 約600 MB | ベータ |
-
Ctrl+Kを押して統合検索ウィンドウを開きます。 -
自然言語で入力します。
SSHパスワードを保存している部分先週直したエンコードバグorders テーブルに amount カラムを追加したコミット -
ソースフィルターチップ(code · db · git · chat · work_event · doc)で範囲を絞ります。
-
結果カードをクリックすると内容が展開され、▶ ボタンを押すと元のファイル·位置に移動します。
AIチャットとの自動連携
Section titled “AIチャットとの自動連携”AIチャット は、ユーザーがメッセージを送る前に workspace_search ツールでインデックスを自動検索します。関連コード·過去の会話·DBスキーマをコンテキストとして取り込み、回答の精度を高めます。別途の操作は不要で、引用されたファイルは回答の下の**「参考:」**セクションに表示されます。
インデックス管理
Section titled “インデックス管理”自動インデックス
Section titled “自動インデックス”- ファイル保存またはDBスキーマ変更が検出されると、バックグラウンドで増分インデックスされます。
- モード選択 — チャット設定で
eco/balanced/fastの中から選択し、CPU使用量と反映速度のバランスを調整します。 - 状態ダッシュボード — チャット設定 → RAGインデックス状態 タブで、ソース別のチャンク数とインデックスキューをリアルタイムで確認します。
除外パターン
Section titled “除外パターン”.gitignore を自動的に尊重し、下記のパスはデフォルトで除外されます。
node_modules/ .git/ dist/ build/追加の除外が必要なら、プロジェクトルートの .termeditignore ファイルに記述します(gitignore 文法)。DBオブジェクトは [db] セクションに glob パターンで除外します。
# .termeditignore の例vendor/*.generated.tscoverage/
[db]*.tmp_*BACKUP_*パターンを保存すると、すでにインデックスされた該当チャンクも即座に整理されます。
インデックス清掃ツール
Section titled “インデックス清掃ツール”古いワークスペースでインデックスが肥大化したら、ダッシュボードの清掃ツールを使用してください。
| ツール | 役割 |
|---|---|
| Orphan Scan | 削除されたファイルの残存チャンクを除去 |
| Pattern Purge | パスパターン(例: dist/**)で一括除去 |
| Stale Cleanup | 長く引用されていないチャンクを整理 |
| 失敗再試行 | インデックス失敗項目を再処理 |
インデックスの保存場所 & サイズ
Section titled “インデックスの保存場所 & サイズ”インデックスはワークスペースごとの SQLite ファイル(workspace.sqlite)として保存されます。ワークスペースフォルダを移動すると新たにインデックスされます。
サイズは負担にならない水準です。1万チャンク基準でベクトルデータが約15 MB です。
検索ウィンドウが開きません
→ Ctrl+K を使用します。入力フォーカスが他のショートカットと競合する場合は、空の領域を一度クリックしてから再試行します。
結果がない、または変です
→ 初回実行直後は、モデルのロード·ダウンロードが完了するまで結果が空のことがあります。インデックス状態ダッシュボードで進行率を確認してください。ノイズが多いなら .termeditignore で不要なパスを除外してください。
古い結果が出続けます → インデックス状態タブ → Orphan Scan または Stale Cleanup を実行します。モデルを変更した直後なら、再インデックスが完了するまで待ちます。
埋め込みモデルを変えると既存のインデックスは? → モデルを変更すると既存のインデックスが自動的に削除され、最初から再インデックスされます。プロジェクトの規模によって数分かかることがあります。
リモート(SSH/SFTP)フォルダもインデックスされますか?
→ まだ対応していません。リモートプロジェクトフォルダでは RAG コード検索が無効になり、AIが file_list_dir + file_read ツールで直接探索します。
AIの回答にコードが誤って引用されます
→ ソースフィルターを調整するか、.termeditignore でノイズファイルを除外すると、引用品質が改善されます。リランキングオプションを有効にすると、関連性の低いチャンクが後ろに押されます。