GroupDocs.Search Java を使用したドキュメント検索方法
最新のエンタープライズアプリケーションでは、how to search documents を迅速かつ正確に行うことが重要な要件です。契約書、レポート、または大規模なドキュメントリポジトリを扱う場合でも、GroupDocs.Search for Java は、組み込みのファジーマッチングを備えた堅牢なフルテキスト検索エンジンを提供します。このチュートリアルでは、ライブラリの設定、インデックスの作成、ドキュメントの追加、fuzzy search Java の構成、結果の取得までを、分かりやすく会話調の説明とともに案内します。
クイック回答
- What is the first step? Maven で GroupDocs.Search Java ライブラリをインストールするか、直接ダウンロードしてください。
- How do I create an index? ディスク上のフォルダーを指す
Indexオブジェクトをインスタンス化します。ライブラリは検索可能な構造を自動的に構築します。 - Can I search with typos? はい。ファジー検索を有効にすると、綴りミスやわずかな変化がある語句にもマッチします。
- How to add documents?
Indexインスタンスのaddメソッドを使用し、ファイルが格納されたフォルダーを渡します。 - What Java version is required? JDK 8 以上がサポートされています。
GroupDocs.Search のコンテキストでの “how to search documents” とは何ですか?
“How to search documents” は、検索可能なインデックスを構築し、マッチするファイルを返すクエリを発行するプロセスを指します。オプションでファジーロジックを使用してスペルミスを許容することもできます。GroupDocs.Search はトークン化、インデックス作成、ランキングを内部で処理するため、ビジネスロジックに集中できます。
なぜ Java 用の GroupDocs.Search を使用するのか?
GroupDocs.Search は 30 以上のファイル形式(DOCX、PDF、TXT、HTML、XLSX など)をサポートし、ファイル全体をメモリに読み込むことなく 数百ページに及ぶドキュメント をインデックスできます。一般的なサーバーハードウェア上でサブ秒レベルのクエリ応答を提供します。ファジー検索機能により、クエリにタイポが含まれていても関連する結果を返すことでユーザーエクスペリエンスが向上します。
前提条件
- Java Development Kit (JDK): バージョン 8 以上。
- IDE: IntelliJ IDEA、Eclipse、または任意の Java 対応エディタ。
- GroupDocs.Search for Java library: Maven で追加(推奨)または JAR をダウンロードしてください。
GroupDocs.Search for Java のセットアップ方法
まず、ビルドファイルに GroupDocs.Search の依存関係を追加し、リポジトリ URL がアクセス可能であることと、JDK バージョンが最低要件を満たしていることを確認します。ライブラリが解決されたら、コードでクラスをインポートし、検索可能なデータが保存されるインデックスフォルダーをディスク上に作成できます。
Maven 設定
pom.xml ファイルにリポジトリと依存関係を、元のガイドと同様に正確に追加してください。
<repositories>
<repository>
<id>repository.groupdocs.com</id>
<name>GroupDocs Repository</name>
<url>https://releases.groupdocs.com/search/java/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-search</artifactId>
<version>25.4</version>
</dependency>
</dependencies>
直接ダウンロード
あるいは、公式リリースページから JAR を取得してください。
GroupDocs.Search for Java releases
GroupDocs.Search Documentation
インデックスの作成方法
GroupDocs.Search がトークン化されたデータを保存する永続的なインデックスフォルダーを作成します。new Index("path/to/indexFolder") の一行コードで最初のインデックスをロードできます。Index クラスは、メモリとディスク上で検索可能なドキュメントコレクションを表すコアコンポーネントです。
import com.groupdocs.search.*;
String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Searching/SearchResults";
Index index = new Index(indexFolder);
インデックスへのドキュメント追加方法
Index インスタンスの add メソッドを使用して、ソースファイルが格納されたフォルダーを指定します。エンジンはサポートされている形式を再帰的にスキャンし、テキストコンテンツを抽出して内部構造を更新します。この単一呼び出しで大規模バッチを効率的に処理でき、手動でファイルごとに処理する必要がなくなります。
String documentFolder = "YOUR_DOCUMENT_DIRECTORY";
index.add(documentFolder);
Fuzzy Search Java の構成方法
FuzzySearchOptions クラスは、編集距離やプレフィックス長など、検索が綴りミスにどれだけ寛容かを制御するパラメータを定義します。SearchOptions オブジェクトは、ファジーオプション、結果上限、ハイライト設定など、検索時のすべての設定をまとめます。SearchOptions オブジェクトに FuzzySearchOptions を設定してファジーマッチングを有効にします。これにより、エンジンは設定可能な編集距離内の語句を考慮し、綴りミスに寛容な検索を実現します。
String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Searching/SearchResults";
Index index = new Index(indexFolder);
検索操作の実行方法
Index オブジェクトの search メソッドを呼び出し、クエリ文字列と設定した SearchOptions を渡します。エンジンはリクエストを処理し、ファジーマッチングが有効な場合は適用し、関連度スコアに基づいて結果をランク付けします。検索は事前に構築されたトークン構造上で行われるため、大規模インデックスでも高速に完了します。このメソッドは、マッチしたドキュメント、ヒット数、ハイライトされたスニペットを含む SearchResult コレクションを返します。
String documentFolder = "YOUR_DOCUMENT_DIRECTORY";
index.add(documentFolder);
検索結果の処理と表示方法
SearchResult は個々の SearchResultItem オブジェクトを保持するコレクションで、各アイテムはマッチしたドキュメント、ヒット数、ハイライトされたスニペットを記述します。SearchResult のアイテムを反復処理し、各ドキュメントのパス、出現回数、マッチしたフレーズを出力します。このシンプルなループにより、UI テーブル、ログ、または API 応答を構築でき、ドキュメントがマッチした理由を正確に示すことができます。
import com.groupdocs.search.options.*;
SearchOptions options = new SearchOptions();
options.getFuzzySearch().setEnabled(true);
options.getFuzzySearch().setFuzzyAlgorithm(new TableDiscreteFunction(3));
実用的な応用例
how to search documents が重要になる実際のシナリオ:
- Legal Document Management(法務文書管理): 数千件の契約書から条項や当事者を数秒で検索。
- Academic Research(学術研究): 検索語が綴りミスでも関連する論文を取得。
- Enterprise Content Management(エンタープライズコンテンツ管理): レポート、メール、プレゼンテーション全体に対して高速でタイポに寛容な検索を内部ポータルに提供。
パフォーマンス上の考慮点
- Index Refresh(インデックスの更新): ソースファイルが変更されたら
addまたはupdateを再実行し、結果を最新に保ちます。 - Memory Management(メモリ管理): GroupDocs.Search は大きなファイルをストリーミング処理するため、500 ページの PDF でもメモリ使用量は低く抑えられます。
- Chunked Indexing(分割インデックス): 大規模コーパスを複数のインデックスフォルダーに分割し、処理を並列化してクエリ遅延を改善します。
よくある質問
Q: fuzzy search Java とは何で、なぜ有用なのか?
A: Fuzzy search Java は近似文字列マッチングを可能にし、タイポや別表記があってもクエリが結果を返せるようにします。これによりエンドユーザーの体験が向上します。
Q: 新しいファイルを追加した後、インデックスを更新するには?
A: index.add("new/files/folder") を再度呼び出します。ライブラリはインデックス全体を再構築せずに新しいコンテンツをインテリジェントにマージします。
Q: GroupDocs.Search はパスワード保護された PDF を処理できますか?
A: はい。ファイルを追加する際に DocumentLoadOptions でパスワードを指定すれば、エンジンが復号してコンテンツをインデックスします。
Q: インデックス可能なドキュメント数に上限はありますか?
A: ライブラリは数百万件のファイルまでスケールします。パフォーマンスはハードウェアとストレージに依存し、ハードコードされた上限はありません。
Q: より高度な例はどこで見つけられますか?
A: カスタムアナライザーや結果ランキングなど、より深いトピックについては公式ドキュメントをご覧ください。
結論
これで、GroupDocs.Search for Java を使用した how to search documents の方法、インデックス作成から fuzzy search Java の有効化、結果の処理までが理解できました。これらの手順を実装すれば、あらゆる Java ベースのアプリケーションで高速かつタイポに寛容な検索体験を提供できます。
最終更新日: 2026-05-28
テスト環境: GroupDocs.Search 23.10 for Java
作者: GroupDocs
String query = "water OR \"Lorem ipsum\"";
SearchResult result = index.search(query, options);
for (int i = 0; i < result.getDocumentCount(); i++) {
FoundDocument document = result.getFoundDocument(i);
System.out.println("\tDocument: " + document.getDocumentInfo().getFilePath());
System.out.println("\tOccurrences: " + document.getOccurrenceCount());
for (FoundDocumentField field : document.getFoundFields()) {
System.out.println("\t\tField: " + field.getFieldName());
if (field.getTerms() != null) {
for (int k = 0; k < field.getTerms().length; k++) {
System.out.println("\t\t\t" + field.getTerms()[k] + " - " + field.getTermsOccurrences()[k]);
}
}
}
}