Skip to content

ponpaku/fulltext-search-server

Repository files navigation

Full-Search-PDFs

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 80

簡易起動スクリプト

Windows

  • run.bat を実行

Linux / macOS

chmod +x run.sh
./run.sh

使い方(UI)

  • 検索: キーワード入力 → 対象フォルダ選択 → 検索ボタン
  • 絞り込み: 検索結果の「絞り込み」からフォルダ/ファイル形式でローカル絞り込み
    • フィルタ未選択は全件表示
  • 表記ゆれ: 既定は「ゆらぎ吸収」。厳格は改行/不可視のみ整える
    • 環境設定により厳格へフォールバックする場合あり
  • 検索履歴: 右上の履歴アイコンから表示(最大30件、ピン留め可)
  • CSV出力: 検索結果がある時のみ「CSV」ボタンが表示

NAS/共有フォルダ利用時の注意

  • 事前にOS側で共有フォルダを認証・マウントしてから起動してください。
  • アプリ側では資格情報を扱わず、OSの認証済みパスをそのまま利用します。

注意(抜粋)

  • スキャンPDF(画像のみ)は本文を抽出できない場合があります(OCR非対応)
  • パスワード付き/破損ファイルはスキップされる可能性があります
  • SMB/NAS では更新時刻が信用できない場合があるため、差分判定モードの設定に注意してください

トラブルシューティング(抜粋)

  • 検索漏れがある: スキャンPDF/差分判定モード/共有フォルダの更新時刻を確認
  • 変更が反映されない: diff.modefastfp または fullhash にして再構築
  • 起動に失敗: config.json の存在と JSON 構文を確認

タスクスケジューラー登録例(Windows)

  • 基本: アクションは run.bat を指定
  • コンソールを表示したい場合:
    • プログラム/スクリプト: C:\Windows\System32\cmd.exe
    • 引数の追加: /k ""C:\path\to\run.bat""
    • 開始(オプション): C:\path\to\(run.bat のフォルダ)

設定

config.json(アプリ設定)

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 を日本語で更新してください。

About

ローカル/社内フォルダのPDF/Office文書を全文検索するFastAPIサーバー(Web UI / NAS・SMB対応)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors