検索可能なインデックス Java を作成: ドキュメントの追加と大文字小文字検索
モダンな Java アプリケーションでは、creating a searchable index java が大量のドキュメントコレクションから情報を高速かつ正確に取得する基盤となります。このチュートリアルでは、インデックスにドキュメントを追加し、大文字小文字検索を有効にし、GroupDocs.Search でプロセスを微調整する方法を示します。法務リポジトリ、e コマースカタログ、コンテンツ管理システムの構築に関わらず、これらの手順によりユーザーを満足させる正確な結果を提供できます。
クイック回答
- 検索を開始するための主なステップは何ですか?
index.add(...)でインデックスにドキュメントを追加します。 - 大文字小文字検索を有効にするには?
options.setUseCaseSensitiveSearch(true)を設定します。 - 複数ディレクトリを横断して検索できますか? はい – 追加したいフォルダーごとに
index.add()を呼び出します。 - オブジェクトで検索するメソッドはどれですか?
SearchQuery.createWordQuery(...)を使用します。 - テスト用にライセンスは必要ですか? 試用目的の一時ライセンスが利用可能です。
「インデックスにドキュメントを追加する」とはどういう意味ですか?
インデックスにドキュメントを追加するとは、PDF、Word 文書、プレーンテキストなどのソースファイルを GroupDocs.Search に取り込み、検索可能なデータ構造を構築させることです。インデックスはトークン化された語句、位置情報、メタデータを保存し、エンジンが高速なクエリ(大文字小文字検索を含む)を実行し、結果を効率的にランク付けできるようにします。
Java で大文字小文字検索を有効にする理由
大文字小文字検索を有効にすると、エンジンは文字の大文字・小文字だけが異なる語句を区別できるようになり、キャピタリゼーションが意味を持つドメインでは重要です。正確な語句一致を実現し、規制遵守要件をサポートし、ユーザーのクエリケースと正確に一致する結果を返すことで関連性が向上します。
- 正確な語句一致 – 例: “Apple”(企業) と “apple”(果物)。
- 規制遵守 – 多くの業界で正確なフレーズ一致が求められます。
- 関連性の向上 – 技術系や法務系のユーザーは大文字小文字に依存した結果を期待します。
前提条件
- JDK 17 以降(推奨)
- 依存関係管理のための Maven
- IntelliJ IDEA または Eclipse などの IDE
- Java プログラミングの基本的な知識
GroupDocs.Search for Java のセットアップ
以下の Maven スニペットは、GroupDocs.Search リポジトリと必要な依存関係をプロジェクトに追加します。
<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>
または、GroupDocs.Search for Java releases から直接最新バージョンをダウンロードできます。
ライセンス
トライアルを開始するには、GroupDocs のサイトで一時ライセンスを取得してください。これにより、機能制限なしで全機能をテストできます。
検索可能なインデックス Java を作成 – テキストクエリ検索
手順 1: インデックスを作成し、ドキュメントを追加する
Index クラスは、ディスク上に検索可能なストレージ領域を表し、そこにドキュメントがインデックス化されます。
String indexFolder = YOUR_OUTPUT_DIRECTORY + "/CaseSensitiveSearch/QueryInTextForm";
Index index = new Index(indexFolder);
index.add(YOUR_DOCUMENT_DIRECTORY); // Add documents to the index
プロのコツ:
index.add()を複数回呼び出すことで、単一インデックス内で複数ディレクトリを横断して検索 できます。
手順 2: 大文字小文字検索を有効にする
SearchOptions はクエリの処理方法を構成し、大文字小文字の感度やその他の検索動作を設定します。
SearchOptions options = new SearchOptions();
options.setUseCaseSensitiveSearch(true);
手順 3: 大文字小文字テキストクエリを実行する
SearchQuery はエンジンがインデックスに対して評価するクエリオブジェクトを構築します。
String query = "Advantages";
SearchResult result = index.search(query, options);
// Output results
for (FoundDocument doc : result.getDocuments()) {
System.out.println("Document: " + doc.getDocumentInfo().getFilePath());
}
このループは、正確にケースが一致した語句を含む各ドキュメントのフルパスを出力します。
検索可能なインデックス Java を作成 – オブジェクトクエリ検索
手順 1: セカンドインデックスを初期化する(オプション)
2 番目の Index インスタンスを作成して、プレーンテキスト検索とは別にオブジェクトベースの検索を分離できます。
String indexFolder = YOUR_OUTPUT_DIRECTORY + "/CaseSensitiveSearch/QueryInObjectForm";
Index index = new Index(indexFolder);
index.add(YOUR_DOCUMENT_DIRECTORY); // Add documents to the index
手順 2: 大文字小文字オプションを再利用する
SearchOptions は異なるクエリタイプ間で再利用でき、ケース処理の一貫性を保ちます。
SearchOptions options = new SearchOptions();
options.setUseCaseSensitiveSearch(true);
手順 3: オブジェクトクエリを構築して実行する
WordQuery は語レベルの検索を表し、他のクエリタイプと組み合わせて複雑な検索を実現できます。
SearchQuery query = SearchQuery.createWordQuery("Advantages");
SearchResult result = index.search(query, options);
// Output results
for (FoundDocument doc : result.getDocuments()) {
System.out.println("Document: " + doc.getDocumentInfo().getFilePath());
}
createWordQuery を使用すると、後でフレーズ、ワイルドカード、またはブールクエリと組み合わせて、より複雑なシナリオを構築できます。
実用的な適用例
- 法務文書管理: 大文字小文字が意味を持つ条文を正確に取得。
- E コマースプラットフォーム: “PRO‑X” と “pro‑x” のような SKU を区別。
- コンテンツ管理システム (CMS): 著者が正確な見出しやタグを検索できるように。
パフォーマンス上の考慮点
- インデックスを最新の状態に保つ – 新しいファイルが追加されたり既存ファイルが変更されたりしたら再インデックス化します。
- メモリ使用量を監視 – 大規模コーパスではインクリメンタルインデックスと適切な JVM ヒープサイズが有益です。
- Java のガベージコレクタを活用 –
Indexオブジェクトは不要になったら解放します。
よくある問題と解決策
| 問題 | 解決策 |
|---|---|
useCaseSensitiveSearch が無視されているように見える | 最新の GroupDocs.Search バージョンを使用しているか確認し、オプション変更後にインデックスが再構築されたことを確認してください。 |
| 既知の用語で結果が返されない | 用語のケースが完全に一致しているか、ドキュメントがインデックスに正常に追加されたかを確認してください。 |
| 多数のフォルダーを検索すると遅くなる | 各フォルダーを個別に index.add() で追加し、非常に大規模なデータセットの場合はインデックスをシャードに分割することを検討してください。 |
FAQ(よくある質問)
Q: GroupDocs.Search で大規模データセットを扱うにはどうすればよいですか?
A: インデックスのパーティショニングを活用し、JVM のメモリ設定を調整し、定期的にインデックスをコンパクト化してパフォーマンスを最適化します。
Q: 複数ディレクトリを同時に検索できますか?
A: はい – 追加したいディレクトリごとに index.add() を呼び出し、結合されたインデックスに対して単一クエリを実行します。
Q: 大文字小文字検索を設定する際の一般的な落とし穴は何ですか?
A: useCaseSensitiveSearch を有効にした後にインデックスを再構築し忘れる、またはクエリ文字列でケースを間違えることです。
Q: 検索エラーをトラブルシュートするには?
A: GroupDocs.Search が生成するログファイルでスタックトレースを確認し、すべての Maven 依存関係が正しく解決されていることを確認してください。
Q: GroupDocs.Search はリアルタイムアプリケーションに適していますか?
A: インクリメンタル更新とインメモリキャッシュを組み合わせた適切なインデックス戦略を採用すれば、ほぼリアルタイムの検索結果を提供できます。
リソース
- ドキュメント: GroupDocs.Search Java Docs
- API リファレンス: Java API Reference
- ダウンロード: Latest Releases
- GitHub リポジトリ: GroupDocs.Search for Java
- サポートフォーラム: GroupDocs Free Support
- 一時ライセンス: Acquire a Temporary License
最終更新日: 2026-08-10
テスト環境: GroupDocs.Search 25.4
作者: GroupDocs