概要
tantivy による全文検索インデックスの基盤を構築する。日本語対応(lindera)を含む。
背景・動機
Phase 1 の検索機能の中核。Markdownパーサーが生成した構造化データを tantivy に格納し、高速検索を可能にする。
提案する解決策
src/indexer/ モジュールとして以下を実装する。
主要な機能
- スキーマ定義: tantivy のスキーマを定義(path, heading, body, tags 等)
- lindera トークナイザー: 日本語テキストの分かち書き対応
- Index Writer: ドキュメントの追加・更新
- Index Reader: インデックスからの読み取り
スキーマ設計(案)
| フィールド |
型 |
用途 |
path |
STRING (stored, indexed) |
ファイルパス |
heading |
TEXT (stored, indexed) |
セクション見出し |
body |
TEXT (stored, indexed) |
セクション本文 |
tags |
TEXT (stored, indexed) |
frontmatter タグ(スペース区切り) |
heading_level |
U64 (stored, indexed) |
見出しレベル(1-6) |
line_start |
U64 (stored) |
セクション開始行番号 |
lindera 統合
- tantivy のカスタムトークナイザーとして lindera を登録
body / heading フィールドに日本語トークナイザーを適用
- 英語テキストも正しくトークナイズされること
受け入れ基準
影響範囲
新規ファイル
src/indexer/mod.rs
src/indexer/schema.rs
src/indexer/writer.rs
src/indexer/reader.rs
tests/indexer_tantivy.rs
依存クレート(追加)
tantivy — 全文検索エンジン
lindera-tantivy or lindera — 日本語トークナイザー
概要
tantivy による全文検索インデックスの基盤を構築する。日本語対応(lindera)を含む。
背景・動機
Phase 1 の検索機能の中核。Markdownパーサーが生成した構造化データを tantivy に格納し、高速検索を可能にする。
提案する解決策
src/indexer/モジュールとして以下を実装する。主要な機能
スキーマ設計(案)
pathheadingbodytagsheading_levelline_startlindera 統合
body/headingフィールドに日本語トークナイザーを適用受け入れ基準
.commandindex/tantivy/にインデックスが保存される影響範囲
新規ファイル
src/indexer/mod.rssrc/indexer/schema.rssrc/indexer/writer.rssrc/indexer/reader.rstests/indexer_tantivy.rs依存クレート(追加)
tantivy— 全文検索エンジンlindera-tantivyorlindera— 日本語トークナイザー