System Version: 1.3.1
ローカル/社内フォルダ内の PDF/Office 文書を全文検索する FastAPI アプリです。
UI は static/ 配下で提供されます。
注意: 本アプリは社内LAN/家庭内LANでの利用を前提として設計されています。 インターネットに公開する場合は、認証機能の追加やCORS設定の見直しなど、追加のセキュリティ対策が必要です。
- PDF/DOCX/TXT/CSV/XLSX/XLS のテキスト抽出・検索
- AND/OR + 文字数範囲指定(AND時)
- 和文のみ空白除去(デフォルト)
- 表記ゆれ吸収(既定、厳格は最小整形)
- 結果の無限スクロール(100件ずつレンダリング)
- SMB/NAS の表示名置換(表示のみ)
- SSL 起動(証明書を配置すれば自動)
- 起動時インデックス構築 + スケジュール再構築
- 検索キャッシュ(メモリ/LRU + 固定キャッシュ)
uvicorn app:app --host 0.0.0.0 --port 80run.batを実行
chmod +x run.sh
./run.sh- 検索: キーワード入力 → 対象フォルダ選択 → 検索ボタン
- 絞り込み: 検索結果の「絞り込み」からフォルダ/ファイル形式でローカル絞り込み
- フィルタ未選択は全件表示
- 表記ゆれ: 既定は「ゆらぎ吸収」。厳格は改行/不可視のみ整える
- 環境設定により厳格へフォールバックする場合あり
- 検索履歴: 右上の履歴アイコンから表示(最大30件、ピン留め可)
- CSV出力: 検索結果がある時のみ「CSV」ボタンが表示
- 事前にOS側で共有フォルダを認証・マウントしてから起動してください。
- アプリ側では資格情報を扱わず、OSの認証済みパスをそのまま利用します。
- スキャンPDF(画像のみ)は本文を抽出できない場合があります(OCR非対応)
- パスワード付き/破損ファイルはスキップされる可能性があります
- SMB/NAS では更新時刻が信用できない場合があるため、差分判定モードの設定に注意してください
- 検索漏れがある: スキャンPDF/差分判定モード/共有フォルダの更新時刻を確認
- 変更が反映されない:
diff.modeをfastfpまたはfullhashにして再構築 - 起動に失敗:
config.jsonの存在と JSON 構文を確認
- 基本: アクションは
run.batを指定 - コンソールを表示したい場合:
- プログラム/スクリプト:
C:\Windows\System32\cmd.exe - 引数の追加:
/k ""C:\path\to\run.bat"" - 開始(オプション):
C:\path\to\(run.bat のフォルダ)
- プログラム/スクリプト:
config.example.json をコピーして config.json を作成し、アプリ設定を記載してください。
config.json が見つからない場合は起動を停止します。
詳細な設定例・運用解説は docs/operations.md を参照してください。
README は概要と使い方に絞り、運用・詳細設定は docs/operations.md にまとめています。
- 起動時に全フォルダを走査して
indexes/gen_<uuid>/に保存 - 変更ファイルのみ差分更新
- スケジュール指定があれば自動で再構築
- 世代管理により、再構築中も検索が継続稼働
- 保持ポリシー(世代数/日数/容量)により古い世代を自動削除
詳細(世代管理/保持ポリシー/ロールバック)は docs/operations.md を参照してください。
- Windows の process モードは spawn のため、ワーカー数に応じてメモリが増えます
- 共有 mmap を有効にするとページ本文が共有され、メモリ増加は抑制されます
- PDFのレイアウトによっては抽出順序が混ざる場合があります
- 変更ごとに
CHANGELOG.mdを日本語で更新してください。