Java と GroupDocs.Search を使用した全文検索サンプル
If you need a full text search example that works across PDFs, Word files, spreadsheets, and more, you’ve come to the right place. Manually scanning thousands of documents is a massive bottleneck, but GroupDocs.Search for Java automates indexing and querying with blazing speed. In this tutorial we’ll walk through everything you need to get up and running— from adding documents to index, crafting boolean query java statements, to optimizing search performance for production workloads.
クイック回答
- 全文検索サンプルとは何ですか? すべてのドキュメントの生テキストをインデックス化し、任意の単語やフレーズを即座に検索できるようにします。
- どのライブラリが複数フォーマットをサポートしていますか? GroupDocs.Search for Java は PDF、DOCX、XLSX、PPTX、HTML、TXT、その他 50 以上のファイルタイプを処理します。
- インデックスにドキュメントを追加するには? フォルダー パスまたはカスタム
DocumentFilterを指定してindex.add()メソッドを呼び出します。 - Boolean クエリを実行できますか? はい。AND、OR、NOT を組み合わせて正確な結果を得られます。
- パフォーマンスを向上させるには? 増分インデックス作成を使用し、結果キャッシュを有効にし、必要でない限り音声検索を無効にします。
全文検索サンプルとは?
全文検索サンプルは、ドキュメントのテキスト全体をスキャンし、効率的なインデックスに保存して、一致するレコードを即座に取得できるようにします。ファイル名だけの検索とは異なり、PDF、Word 文書、スプレッドシート、その他サポートされている形式の内部を検索できるため、文書管理システム、サポートポータル、情報を迅速に見つける必要があるあらゆるアプリケーションに最適です。
なぜ GroupDocs.Search for Java を使用するのか?
GroupDocs.Search for Java は、PDF、DOCX、XLSX、PPTX、HTML、プレーンテキストを含む 50 以上のファイルタイプに対するマルチフォーマットサポートを提供します。インデックスをディスクに保存することでメモリ使用量を抑えつつ、数百万件のファイルにスケールします。このライブラリは、組み込みの Boolean、あいまい検索、音声検索を備えた高度なクエリ言語を含み、単一の Maven 依存関係で統合できるため、数分でインデックス作成を開始できます。
前提条件
開始する前に、以下が揃っていることを確認してください:
- Java 11+(Java 8 でも動作しますが、パフォーマンス向上のため Java 11 以降を推奨)
- Maven(依存関係管理用)
- GroupDocs.Search ライセンス(開発には無料トライアルキーで十分)
必要なライブラリと依存関係
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>
For detailed usage see the documentation.
環境設定
- JDK(8 以上)をインストールし、
JAVA_HOMEを設定します。 - IntelliJ IDEA や Eclipse などの IDE を使用するとデバッグが容易になります。
知識の前提条件
- 基本的な Java プログラミング概念。
- Maven の
pom.xml構造に慣れていること。
GroupDocs.Search for Java の設定
ライブラリは Maven(上記参照)で導入するか、JAR を手動でダウンロードできます。
直接ダウンロード(手動設定を希望する場合)
最新パッケージは GroupDocs.Search for Java releases から取得してください。
ライセンス取得手順
- 無料トライアル – サインアップして一時キーを取得します。
- 一時ライセンス – 長期テスト用にキーをリクエストします。
- 購入 – 本番環境の準備ができたらフル商用ライセンスにアップグレードします。
基本的な初期化と設定
ディスク上にインデックス フォルダーを作成し、ライブラリが正しくロードされることを確認します:
import com.groupdocs.search.Index;
public class SearchSetup {
public static void main(String[] args) {
// Initialize an index in the specified directory
Index index = new Index("C:\\MyIndex");
System.out.println("GroupDocs.Search initialized!");
}
}
プロのコツ: クエリ遅延を最小限に抑えるため、インデックス ディレクトリは高速 SSD に置いてください。
インデックスへのドキュメント追加
なぜ重要か: インデックス化されたコンテンツがなければ検索結果は得られません。以下では、フォルダー全体を追加する方法や特定のファイルタイプをフィルタリングする方法を示します。
手順 1: インデックスの作成
Index クラスは、ディスク上にインデックス化されたドキュメントを保存する検索可能なコンテナです。
Index index = new Index("C:\\MyIndex");
手順 2: ドキュメントの追加(インデックスへのドキュメント追加)
DocumentFilter を使用して、フォルダー内のすべてをインデックス化するか、特定の拡張子に限定できます。
index.add("C:\\Documents\\*.*"); // Adds all documents from the specified directory
// For specific file types, use:
index.add("C:\\Reports", new DocumentFilter() {
@Override
public boolean accept(String fileName) {
return fileName.endsWith(".pdf") || fileName.endsWith(".docx");
}
});
説明:
Indexは検索可能なデータベースを表します。add()はファイルを取り込みます。ワイルドカード*.*はすべてのファイルを取得し、DocumentFilterは インデックスへのドキュメント追加 手順を細かく調整できます。
検索の実行(search documents java)
インデックスにデータが格納されたので、クエリを実行できます。
手順 1: クエリの作成
String query = "GroupDocs";
手順 2: 検索の実行
SearchResult result = index.search(query);
System.out.println("Documents found: " + result.getDocumentCount());
説明:
search()はインデックスに対してクエリを実行します。getDocumentCount()は一致したドキュメント数を示します—簡易的なチェックに便利です。
高度なクエリ手法(boolean query java)
正確な制御のために、Boolean ロジックで用語を組み合わせます。
Boolean クエリ
BooleanQuery クラスは AND、OR、NOT 演算子を使用して複雑な式を構築できます。
String booleanQuery = "GroupDocs AND Java";
SearchResult booleanResult = index.search(booleanQuery);
音声検索(あいまい一致用オプション)
PhoneticSearch 機能は誤字に対する音声マッチングを可能にしますが、オーバーヘッドが増加します。
index.getSettings().setPhoneticSearch(true);
使用タイミング: ユーザーが頻繁に誤字を入力する場合のみ音声検索を有効にし、そうでなければ 検索パフォーマンスの最適化 のために無効にしてください。
よくある問題と解決策
| 問題 | 発生理由 | 解決策 |
|---|---|---|
| ドキュメントが見つからない | ファイルパスが間違っている、または権限が不足している | パスを確認し、読み取り権限を付与する |
| クエリが遅い | キャッシュなしの大規模インデックスや不要な音声検索 | キャッシュを有効にし、音声検索を無効にし、インデックスを分割することを検討 |
| Out‑of‑Memory エラー | インデックスサイズが JVM ヒープを超えている | -Xmx を増やすか、増分インデックス作成を使用する |
実用的な活用例
GroupDocs.Search は実際のシナリオで活躍します:
- コンテンツ管理システム – 記事、PDF、メディア資産全体で瞬時の全文検索を提供します。
- カスタマーサポートポータル – エージェントが関連マニュアルやポリシーを数秒で見つけられます。
- エンタープライズ文書リポジトリ – 契約書、レポート、コンプライアンス文書を別データベースに移動せずに検索できます。
パフォーマンスに関する考慮点
検索パフォーマンスの最適化
- 増分インデックス作成: 全インデックスを再構築せず、変更されたファイルのみを追加または更新します。
- キャッシュ: 頻繁に使用されるクエリ結果をメモリに保持します。
- リソース監視: インデックスサイズに応じて JVM ヒープ(
-Xmx2g以上)を調整します。
リソース使用ガイドライン
- インデックス フォルダーは高速 SSD または NVMe ドライブに保存します。
- バルクインデックス中の CPU とメモリを監視し、バッチ操作をスロットルしてスパイクを防ぎます。
Java メモリ管理のベストプラクティス
- ストリームを使用する際は
try‑with‑resourcesを利用します。 - 使用後は大きなオブジェクトを null に設定し、ガベージコレクションを助けます。
結論
これで、GroupDocs.Search を使用した Java の完全な本番対応 全文検索サンプル が完成しました。ライブラリの設定、インデックスへのドキュメント追加、boolean query java 文の作成、検索パフォーマンスの最適化 まで、すべてのステップが網羅されています。
次のステップ
公式の GroupDocs.Search Documentation を確認し、カスタムアナライザー、同義語辞書、クラウドストレージ統合など、より高度な機能を探求してください。
よくある質問
Q: GroupDocs.Search がサポートするファイル形式は何ですか?
A: PDF、DOCX、XLSX、PPTX、HTML、TXT、その他多数の画像形式を含む、50 以上の形式をサポートしています。
Q: 大規模データセットはどのように扱うべきですか?
A: 複数のインデックスに分割し、増分更新を行い、結果キャッシュを有効にしてレイテンシを低く保ちます。
Q: GroupDocs.Search はクラウド環境で実行できますか?
A: はい。インデックス フォルダーをマウントされたクラウドストレージ(例: Azure Blob、AWS S3 のファイルシステムドライバー)に指すことができます。
Q: 他のライブラリと比較した GroupDocs.Search の利点は何ですか?
A: マルチフォーマットサポート、組み込みの Boolean/音声検索、そして低メモリフットプリントで数百万件のドキュメントを処理できる軽量な Java API が挙げられます。
Q: パフォーマンス問題のトラブルシューティング方法は?
A: インデックス設定を確認し、不要な場合は音声検索を無効にし、インデックス作成とクエリ実行中の JVM メモリ/CPU 使用率を監視します。
Last Updated: 2026-08-15
Tested With: GroupDocs.Search 25.4
Author: GroupDocs
リソース
- ドキュメント: GroupDocs.Search Documentation
- API リファレンス: API Reference Guide
- ダウンロード: Latest Releases
- GitHub: Source Code on GitHub
- サポート: Forum and Community Support
- ライセンス: Request a Temporary License