Word、Excel、PDF、画像などのファイルからテキストを抽出して検索します。画像からのテキスト抽出にはOCRが使用できます。
NDLOCR-Lite(国立国会図書館)、Apache Tika、YomiToku(商用使用不可)を使用してファイル内のテキストを抽出して検索します。プログラムはAIに指示して作ったので、指示ミスによる動作不良があると思います。自動更新はしていないので、抽出したものしか検索できません。このツールは動作の正確性・完全性を保証するものではありません。使用は自己責任でお願いします。
⚠️ YomiToku: 研究・個人利用のみ。業務・商用では使用不可。YomiTokuは商用なので、商用利用を含め、使用の際は必ず開発元の提供するライセンス条件や提供元を確認してください。

使用ライブラリ:
- NDLOCR-Lite — 国立国会図書館製OCR (CC BY 4.0)
- Apache Tika — 多形式テキスト抽出 (Apache 2.0)
- YomiToku — 高精度日本語OCR (CC BY-NC-SA 4.0、非商用のみ)
🎯 主な特徴
⚡ 高速検索
- 従来: ファイルを開いて中身を確認 → 遅い 💤
- File Finder: 事前にテキストをDB化 → 瞬時に検索 ⚡
📂 対応形式が豊富
| カテゴリ | 対応形式 |
|---|---|
| Office | .docx, .doc, .xlsx, .xls, .xlsm, .pptx, .ppt |
.pdf(テキスト埋め込み+OCR対応) |
|
| 画像 | .jpg, .jpeg, .png, .heic, .bmp(OCR対応) |
| 動画 | .mp4, .mov, .avi(ファイル名・パスのみ) |
| テキスト | .txt, .csv, .md など(カスタム拡張子も追加可能) |
🌐 ネットワーク&オフライン対応
3つのアクセスモードで、あらゆる環境に対応:
- 🚀 直接抽出: ネットワーク共有から高速処理
- 📦 コピー後抽出: コピー完了後はオフラインOK
- 💾 事前コピー: すでにコピー済みのファイルから処理
🔍 OCR文字認識
- 画像・スキャンPDF内の文字も検索対象に
- 2種類のOCRエンジンから選択可能
- NDLOCR-Lite: 商用利用可能、高速
- Yomitoku: 高精度(非商用のみ)
🛡️ セキュリティ配慮・堅牢性の向上
- ローカル完結: すべての処理はローカルPC内で完結し、外部サーバーへのデータ送信は一切行われません。
- Javaの自動構成とTikaの安全な処理:
.doc,.xls,.pptなどの古い形式は Apache Tika を使って安全にテキストを抽出します。ローカルJava環境 (java/bin/java.exe) の有無を自動検出・構成し、Tikaが利用可能な場合は安全な抽出を最優先で処理します。 - Tika未使用時のフォールバック: Tikaが使えない場合は、 Office アプリ(Word/PowerPoint)経由でテキストを抽出します。
- タイムアウト保護: 1ファイルあたり最大60秒のタイムアウトを設定しており、 処理が止まった場合は自動的に中断して次のファイルへ移行します。
⚡ 効率的なテキスト抽出・データ管理
- テキスト抽出・登録データの直接削除: 検索タブの詳細パネルから、実ファイルを削除することなく、検索DBの登録データのみを個別に削除可能です。
- 検索結果からの除外(非表示リスト): 管理者コンソール(データベース管理)から、特定のファイルやフォルダ配下全体を「検索結果への表示/非表示 (🚫)」設定に指定可能です。
- 一時ファイル・隠しファイルの自動スキップ: フォルダ走査時に、Officeの一時ロックファイル(
~$*)やドットから始まる隠しファイル(.*)を自動的にスキップし、不要なファイル登録を防ぎます。 - SHA-256ハッシュの採用: ファイル重複・変更検知のハッシュ生成処理に、信頼性の高い SHA-256 を採用しています。
- 一時ファイルの即時クリーンアップ: ジョブ完了時に、処理用の一時ファイルを即座に自動削除し、ディスク容量を圧迫しないよう配慮しています。
- 事前コピーモード時の安全警告: GUIで「事前コピーを使う」を有効にした際、対象フォルダに誤ってネットワークパスを指定した場合には、パフォーマンス低下を防ぐための警告ダイアログが表示されます。
🚀 クイックスタート
1️⃣ インストール
次のURLをクリックしてください。
https://github.com/neko-higenonagai/finder
# ベース環境のセットアップ hgnn_setup.bat # (オプション)OCR機能を追加 setup_1_ndlocr_lite.bat setup_2_yomitoku.bat # 非商用のみ(高精度) # (オプション)古いOffice形式の安全な処理 setup_3_tika.bat
💡 Tip: OCRを使わない場合は
hgnn_setup.batだけでOKです。
2️⃣ 起動
run_finder.bat
3️⃣ テキスト抽出(初回のみ)
- 「テキスト抽出・DB登録」 タブを開く
- 対象フォルダを選択(例:
C:\Users\YourName\Documents) - 「テキスト抽出開始」 ボタンをクリック
- 完了を待つ(1000ファイルで約5〜10分、それ以上...)
4️⃣ 検索
- 「検索」 タブを開く
- キーワードを入力(例:
予算 会議) - Enter キーで検索 🔍
- 結果をダブルクリックでファイルを開く
📖 使い方ガイド
詳細は マニュアル を参照してください。
🔍 検索のコツ
AND検索(複数キーワード)
予算 会議 2025
→ すべてのキーワードが含まれるファイルに絞り込み
拡張子フィルタ
- チェックボックスで
.pdfや.docxなど、特定の形式に絞り込み可能
検索結果の操作
| 操作 | 方法 |
|---|---|
| テキスト表示 | 結果を選択すると右下部にパスと内容が表示 |
| ファイルを開く | ダブルクリック or 右クリック → 「ファイルを開く」 |
| フォルダを開く | 右クリック → 「フォルダを開く」 |
| 削除 | 右クリック → 「削除」 |
🔧 3つのアクセスモード詳細
環境や用途に応じて、最適なモードを選択できます。
🚀 直接抽出(デフォルト・推奨)
特徴:
- ✅ 最も高速
- ✅ ディスク容量不要
- ⚠️ 対象がネットワーク先の場合はネットワーク接続が必要
推奨シナリオ:
- 高速LAN環境(1Gbps以上)
- ローカルディスクのファイル
- 小〜中サイズのファイル(〜50MB)
設定:
対象フォルダ: C:\Users\YourName\Documents コピー処理: すべてOFF(デフォルト) 低トラフィック: OFF
📦 コピー後抽出(オフライン推奨)
特徴:
- ✅ コピー完了後はオフラインOK
- ✅ ネットワーク切断可能
- ⚠️ 一時的にディスク容量が必要
推奨シナリオ:
- 低速回線(Wi-Fi、VPN)
- オフライン作業が必要
- 大容量ファイル(50MB以上)
設定:
対象フォルダ: \\server\share\documents ☑ コピーしてからテキスト抽出・DB登録 ☑ 低トラフィック(約2.5MB/s制限)
処理の流れ:
1. ネットワークから work/ にコピー(帯域制限あり) 2. コピー完了 → 「ネット切断可」表示 3. ローカルから高速抽出 4. 一時ファイル自動削除
💾 事前コピー(上級者向け)
特徴:
- ✅ すでにコピー済みのファイルを活用
- ✅ コピー時間のスキップ
- ⚠️ 手動コピーが必要
推奨シナリオ:
- 事前にローカルディスクにコピー済み
- DBには元のパスを登録したい
- 再インデックス時の時間短縮
設定:
対象フォルダ: D:\local_copy\documents ← ローカルコピー先 ☑ 事前コピーを使う ポストパス: \\server\share\documents ← 元のパス
手順:
# 1. 事前にコピー \\server\share\documents → D:\local_copy\documents # 2. File Finder で設定 対象フォルダ: D:\local_copy\documents # ローカルから読む ポストパス: \\server\share\documents # DBには元パスを登録 # 3. 抽出実行 ローカルから高速処理、ネットワークアクセスなし
⚠️ 重要: 対象フォルダにはローカルコピー先を指定してください。
ネットワークパスを指定すると、コピー処理はスキップされますが、読み取り時にネットワークアクセスが発生します。
⚙️ 設定ガイド
🔧 検索設定
テキスト抽出オプション
| 項目 | デフォルト | 説明 |
|---|---|---|
| 最大抽出文字数 | 2000 | ファイル1件あたりの抽出文字数上限 |
| Excel最大行数 | 100 | Excel読み込み行数(大きいと遅い) |
拡張機能
| 項目 | 例 | 説明 |
|---|---|---|
| 追加拡張子 | .txt,.csv,.md |
カスタム拡張子をカンマ区切りで追加 |
| メタデータのみ拡張子 | .mp4,.avi |
中身は読まず、ファイル名・パスのみ検索対象 |
OCR設定
☑ OCRエンジンを有効にする 【機能】 - 画像・スキャンPDF内の文字を認識 - 自動回転補正(0°, 90°, 180°, 270°) ※OCRの回転補正は、画像の向きが違っていても文字として認識することが多いため、向きの自動判別がうまくいかない場合が多くあります。 - 処理時間: 画像1枚あたり約5〜240秒 `yomitoku` は負荷が高いため、1ファイルあたり最大3分(180秒)のタイムアウト制限が設けられており、時間を超過した場合は自動的に `ndlocr_lite` に切り替わるか、スキップされます)。 【推奨環境】 - CPU: 4コア以上 - RAM: 8GB以上 - ストレージ: SSD推奨
動作要件
推奨構成(CPU)およびGPU動作に関する重要な注意点
- 推奨環境: 本システムは、最も安定して動作する 「CPU環境」を推奨構成(動作保証) としています。
- NDLOCR-LiteはCPU固定: 文字認識(NDLOCR-Lite)は、GPUとライブラリの相性問題やメモリ確保の不具合を回避し、かつ極めて軽量で高速なため、GPU構成を選択した場合でも常に安定した CPU 上で実行される設計となっています。GPUによって高速化されるのはYomiTokuのみです。
- GPU環境の動作性: GPUはPC構成やドライバのバージョンによってビルドエラーが発生したり、正常に動作しなかったりする場合があります。
- 実機動作確認済みGPU: 本システムにおいて実機で動作確認を行ったGPUは 「NVIDIA GeForce RTX 2060 (6GB)」のみ です。
- 未検証・サポート外の環境: Intel Iris や AMD Radeon などの環境(DirectML / Vulkanアクセラレーション)については、実機での検証を行っておらず未検証・サポート外となります。
古いOffice形式の扱い
☑ 古いOffice形式を読み込む (.doc, .xls, .ppt) 【安全な処理】 ✅ Tikaインストール済み → 安全に抽出(推奨) ⚠️ Tika未インストール → Office起動(マクロリスクあり) 【推奨】 - setup_3_tika.bat でTikaをセットアップ - 信頼できるファイルのみを対象に
💾 データベース設定
データベースパス
検索DB (finder.db): db/finder.db 進捗DB (progress.db): db/progress.db
メンテナンス操作
| 操作 | 影響 | 用途 |
|---|---|---|
| 抽出履歴のクリア | ジョブ履歴・エラーログのみ削除 | 管理画面の整理 |
| 完全初期化 | すべてのインデックスを削除 | 一から再構築 |
⚠️ 重要な注意事項
⚖️ 免責事項
- 現状有姿での提供: 本プログラムは現状有姿で提供され、バグや動作不良が含まれる可能性があります。
- 使用上の免責: 作者および提供者は、本プログラムの使用または使用不能から生じるいかなる損害(データの損失、業務の中断、PCの不具合などを含む)についても一切の責任を負いません。自己責任においてご利用ください。
🔒 セキュリティ
古いOffice形式 (
.doc,.xls,.ppt)- ⚠️ マクロの自動実行リスクあり
- ✅ 推奨:
setup_3_tika.batでTikaをセットアップ - 📌 信頼できないファイルは設定で無効化
ネットワーク
- ローカルPC内で完結、外部送信なし
- DB内のパス情報は暗号化されていません(ローカル前提)
🔄 インデックスとファイルの同期・アクセス制限
- 自動更新ではありません: 本システムはファイルの変更をリアルタイムで検知して自動更新する機能はありません。ファイルの追加・変更・削除を反映するには、再度テキスト抽出・DB登録を行う必要があります。
- 目的のファイルが見つからない場合: データベースの登録内容が古い場合や、ネットワークの一時的な切断、共有フォルダへのアクセス権限がない場合などに、検索結果に表示されても目的のファイルが見つからない(アクセスできない)ことがあります。
📜 ライセンスと商用利用
| コンポーネント | ライセンス | 商用利用 |
|---|---|---|
| File Finder本体 | MIT License | ✅ 可能 |
| NDLOCR-Lite | Apache 2.0 | ✅ 可能 |
| Yomitoku | 非商用ライセンス | ❌ 不可 |
| Apache Tika | Apache 2.0 | ✅ 可能 |
⚠️ Yomitokuの制限: 研究・個人利用のみ。業務・商用では使用不可。yomitokuは商用なので、商用利用を含め、使用の際は必ず開発元の提供するライセンス条件や提供元を確認してください。
🐛 トラブルシューティング
検索結果が出ない
【原因1】テキスト抽出がまだ → 「テキスト抽出・DB登録」タブで抽出を実行 【原因2】拡張子フィルタが厳しすぎる → 「すべて」にチェック、または対象拡張子を増やす 【原因3】ファイルが追加拡張子に含まれていない → 設定 → 「追加拡張子」に追加
テキスト抽出が失敗する
【.doc/.xls/.ppt の場合】 → setup_3_tika.bat を実行してTikaをインストール 【画像ファイルの場合】 → setup_1_ndlocr_lite.bat でOCRを追加 → 設定で「OCRを有効にする」をON 【ネットワークエラーの場合】 → 「コピーしてからテキスト抽出」+「低トラフィック」を有効化
処理が遅い
【ネットワーク共有の場合】 ✅ 「コピーしてからテキスト抽出」+ 「低トラフィック」ON 【大量ファイルの場合】 ✅ 「Excel最大行数」を 50 に減らす ✅ 「最大抽出文字数」を 1000 に減らす ✅ 対象拡張子を絞り込む(必要なものだけON)
メモリ不足
【大ファイルの直接抽出】 → 「コピーしてからテキスト抽出」に変更 【OCR処理中】 → 同時処理ファイル数を減らす → 画像解像度を下げる(設定は自動)
📁 ディレクトリ構成
finder/
├── run_finder.bat # アプリ起動
├── hgnn_setup.bat # メインセットアップ
├── setup_*.bat # オプションセットアップ
├── README.md # このファイル
├── LICENSE # ライセンス
│
├── scripts/ # Pythonスクリプト
│ ├── finder.py # エントリポイント
│ ├── lib/ # コアロジック
│ └── gui/ # GUI
│
├── python/ # ローカルPython環境
│ ├── python.exe
│ └── Lib/ # 依存パッケージ
│
├── java/ # Apache Tika用Java
│ └── bin/
│
├── db/ # データベース
│ ├── finder.db # 検索インデックス
│ └── progress.db # 抽出履歴
│
├── work/ # 一時ファイル
│ └── (自動削除)
│
└── doc/ # ドキュメント
└── manual.md # 詳細マニュアル
📄 ライセンス
本アプリケーションは MIT License のもとで公開されています。
外部ライブラリのライセンス:
- NDLOCR-Lite: Apache License 2.0
- Yomitoku: 非商用ライセンス(研究・個人利用のみ)
- Apache Tika: Apache License 2.0
- その他: 各ライブラリの公式ドキュメントを参照









