ローカルRAG基盤構築研究
序章 ― アーカイブと再帰性
二十年以上にわたり蓄積されたWEB文書群は,単なる記録ではありません.
それは思考の堆積であり,時間の中で再帰的に更新され続けた知的地層です.
検索とは単語照合ではなく,
過去の自分との対話を再開するための装置です.
本研究は,巨大な外部サービスやクラウドに依存せず,
手元に存在するテキスト資産のみを用いて,
再帰的知識空間を再構築する試みです.
基盤はディレクトリとファイルという最小単位です.
その上に全文検索を構築し,
将来的にはRAG(Retrieval-Augmented Generation)へ接続します.
設計方針
前提環境
- OS: xubuntu 20.04 LTS
- 可能な限り標準パッケージを利用
- 外部DBサーバーは使用しない
- ディレクトリツリー+ファイル構造を維持
- 実装はCLI志向
- フロントエンドは Emacs と ローカルWeb UI
WEB再構築は行わない
既存サイトはすでにローカル環境で閲覧可能であり,
再公開やCMS化は不要と判断しました.
目的は検索基盤の整備であり,
公開形態の再設計ではありません.
データフォーマット決定経緯 ― YAML + Markdown
最終的に文書フォーマットは
「YAMLフロントマター + Markdown本文」に決定しました.
決定理由は以下の通りです.
1. HTML依存の回避
既存資産はHTMLですが,
- 装飾タグ
- レイアウト依存構造
- ナビゲーション要素
- スクリプト混在
など,検索ノイズが多く含まれます.
検索対象は「意味」であり,
表示構造ではありません.
そのため,本文をMarkdownへ正規化します.
2. メタデータの明示化
日付,タグ,カテゴリ,URLなどの情報は
検索品質に影響します.
これらをMarkdownヘッダではなく,
YAMLフロントマターに分離することで,
- 構造化
- 将来の機械処理
- ベクトル検索との連携
が容易になります.
3. 単純性と可読性
YAML + Markdownは
- プレーンテキスト
- git管理容易
- エディタ依存なし
- 将来変換容易
という利点があります.
これは本研究の
「ファイル中心主義」と整合します.
全体アーキテクチャ
wgetによるWEBミラー取得 ↓ フィルタ群によるデータ正規化 (HTML整理 / 不要タグ除去 / 本文抽出) ↓ YAML + Markdown 形式へ変換 ↓ ディレクトリツリー確定 ↓ Recollによる全文インデックス生成 ↓ ┌──────────────────┐ │ Emacsフロントエンド │ │ ローカルWeb UI │ └──────────────────┘ ↓ (将来)ベクトル再ランキング ↓ LLM統合
フィルタによるデータ正規化の重要性
検索品質はインデックス生成前にほぼ決まります.
実施する処理例:
- 不要タグ除去
- ナビゲーション削除
- スクリプト削除
- 重複排除
- 文字コード統一(UTF-8)
- 改行整形
- 本文抽出
検索器はあくまでインデックス生成装置です.
データ品質保証はフィルタ工程の責務です.
全文検索エンジン選定
検討対象:
- SQLite FTS5
- grepベース自作
- 専用検索エンジン
SQLiteは単一巨大ファイル化するため,
設計思想(分散ファイル型)と合致しないと判断しました.
最終的に採用したのは
:contentReference[oaicite:0]{index=0} です.
Recollは内部的に
:contentReference[oaicite:1]{index=1} を利用します.
採用理由
- aptで導入可能
- 外部DB不要
- ファイルベースインデックス
- CLI利用可能(recollq)
- Emacs連携容易
- ローカルWeb UIあり
- 日本語対応可能
インデックスは ~/.recoll/xapiandb/ 以下に
複数ファイルとして生成されます.
単一巨大DBではありません.
Emacs統合設計
- recollq を非同期実行
- JSON出力を取得
- elispでパース
- org-bufferへ整形表示
- 該当ファイルへジャンプ
将来的には:
- 上位N件抽出
- ベクトル再ランキング
- LLMへ文脈供給
を統合します.
将来拡張構想
最終目標は以下のハイブリッド構造です.
- Lexical検索(Recoll)
- Vector検索
- 再ランキング
- LLM応答生成
全文検索は候補生成装置として機能します.
実装フェーズ
- wgetによるサイトミラー取得
- 正規化フィルタ群設計
- YAML + Markdown変換
- ディレクトリ構造確定
- Recollインデックス生成
- CLI動作確認
- Emacs統合
結語
本研究は,オールドスクールなファイル構造と
現代的検索技術を統合する試みです.
中心は検索器ではなく,
正規化されたテキスト資産そのものです.
まずは wget による取得から開始します.