Boolean operators Java – 検索インデックスの作成とファセット検索
Javaで強力な search experience を実装することは圧倒的に感じられることがあります。特に、ファセット検索や複雑なクエリに対応する boolean operators Java をサポートする create a search index Java が必要な場合はなおさらです。このチュートリアルでは GroupDocs.Search for Java の設定、インデックスの構築、ドキュメントの追加、シンプルなファセット検索とブールロジックを使用した高度なマルチクライテリアクエリの作成手順を解説します。最後まで読むと、content search Java、filename search Java、さらには update index Java 操作を活用してデータを最新に保つ方法が理解できるようになります。
クイック回答
- ファセット検索とは何ですか? 事前に定義されたカテゴリ(ファイルタイプや日付など)で結果をフィルタリングする方法です。
- Javaで検索インデックスを作成するには? フォルダーを指す
Indexオブジェクトを初期化し、ドキュメントを追加します。 - ブール演算子で複数の条件を組み合わせられますか? はい—オブジェクトベースのクエリまたはテキストクエリ内の Boolean 演算子を使用します。
- ライセンスは必要ですか? 開発には無料トライアルで十分です。商用ライセンスを取得すれば制限が解除されます。
- どの IDE が最適ですか? 任意の Java IDE(IntelliJ IDEA、Eclipse、NetBeans)で問題なく動作します。
「create search index java」とは何ですか?
Javaで検索インデックスを作成することは、ドキュメントのテキストとメタデータを格納するディスクベースの構造を構築し、クエリによって一致するドキュメントを即座に取得できるようにすることを意味します。インデックスは用語をドキュメント識別子にマッピングし、高速な検索をサポートし、ファイルの変更に応じてインクリメンタルに更新できるため、強力な検索機能の基盤を提供します。
ファセット検索および複雑なクエリに GroupDocs.Search を使用する理由
Java 用の GroupDocs.Search は、組み込みのファセット機能、Boolean クエリサポート、高性能インデックス作成を提供し、最大 1,000 万件のドキュメントを処理しながら、一般的なサーバハードウェアでクエリ遅延を 200 ms 未満に抑えます。即座に使用できるフィールドフィルタ、リッチなクエリ言語、純粋な Java 互換性を備えており、エンタープライズ規模の検索シナリオに最適です。
前提条件
- JDK 8 以上 がインストールされ、IDE で設定されていること。
- Maven(または Gradle)を依存関係管理に使用すること。
- GroupDocs.Search for Java ≥ 25.4。
- Java の OOP 概念と Maven プロジェクト構造に関する基本的な知識があること。
GroupDocs.Search for Java の設定
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 リリース
ライセンス取得
フル機能をアンロックするには:
- Free trial – 開発とテストに最適です。
- Temporary evaluation license – トライアルの制限を拡張します。
- Commercial license – 本番利用のすべての制限を解除します。
基本的な初期化と設定
Index クラスは、ディスク上に保存された検索可能なインデックスを表すコアコンポーネントです。以下のスニペットは Index クラスをインスタンス化して create a search index Java を行う方法を示しています:
import com.groupdocs.search.Index;
public class SearchSetup {
public static void main(String[] args) {
String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Searching/FacetedSearch/SimpleFacetedSearch";
// Create an instance of Index – this creates the on‑disk index
Index index = new Index(indexFolder);
System.out.println("GroupDocs.Search initialized successfully!");
}
}
インデックスが準備できたら、実際のファセット検索や複雑なクエリに進むことができます。
boolean operators java の使用方法 – シンプルなファセット検索
インデックスをロードし、ドキュメントを追加し、フィールドクエリを実行します。2 段階のパターンにより、ファセットカウントとフィルタ結果を 1 回の呼び出しで取得できます。このアプローチは、ファイルタイプ、作成者、カスタムメタデータなどのカテゴリで結果を絞り込む直感的な方法をユーザーに提供します。
手順 1: インデックスの作成
まず、インデックスファイルが保存されるフォルダーを Index に指定します。
import com.groupdocs.search.Index;
String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Searching/FacetedSearch/SimpleFacetedSearch";
Index index = new Index(indexFolder);
手順 2: インデックスにドキュメントを追加
GroupDocs.Search にソースドキュメントの場所を伝えます。サポートされているすべてのファイルタイプ(PDF、DOCX、TXT など)が自動的にインデックス化されます。
import com.groupdocs.search.Index;
String documentsFolder = "YOUR_DOCUMENT_DIRECTORY";
// Adding documents to the index
index.add(documentsFolder);
手順 3: テキストクエリで content フィールドを検索
簡単なテキストクエリは content フィールドでフィルタリングします。構文 content: Pellentesque は本文テキストに Pellentesque という単語が含まれるドキュメントに結果を限定します。
import com.groupdocs.search.results.SearchResult;
String query1 = "content: Pellentesque";
SearchResult result1 = index.search(query1);
// Output search results
System.out.println("Documents found (query 1): " + result1.getDocumentCount());
手順 4: オブジェクトクエリで検索
オブジェクトベースのクエリは細かい制御を可能にします。ここでは単語クエリを作成し、フィールドクエリでラップして実行します。
import com.groupdocs.search.SearchQuery;
import com.groupdocs.search.options.CommonFieldNames;
SearchQuery wordQuery = SearchQuery.createWordQuery("Pellentesque");
SearchQuery fieldQuery = SearchQuery.createFieldQuery(CommonFieldNames.Content, wordQuery);
SearchResult result2 = index.search(fieldQuery);
// Output search results
System.out.println("Documents found (query 2): " + result2.getDocumentCount());
boolean operators java の使用方法 – 複合クエリ検索
複合クエリを実行するには、AND/OR/NOT 演算子で複数のフィールド条件を組み合わせ、必要に応じてフレーズ検索を含めます。各条件はフィールドクエリで指定し、Boolean 演算子で入れ子にし、ブーストで関連性を制御することで、必要なすべての条件を満たす最も関連性の高いドキュメントだけを取得できます。
手順 1: 複合クエリ用インデックスの作成
同じフォルダー構造を再利用します。シンプルなシナリオと複合シナリオの両方でインデックスを共有できます。
String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Searching/FacetedSearch/ComplexQuery";
Index index = new Index(indexFolder);
index.add(documentsFolder);
手順 2: テキストクエリで検索
以下のクエリは、ファイル名が lorem かつ ipsum または 2 つの正確なフレーズのいずれかを含むコンテンツを検索します。
import com.groupdocs.search.results.SearchResult;
String query1 = "(filename: (lorem AND ipsum)) OR (content: (\"lectus eu aliquam\" OR \"dignissim turpis\"))";
SearchResult result1 = index.search(query1);
// Output search results
class SearchResult {
public int getDocumentCount() {
// Implementation here
return 0; // Placeholder
}
}
System.out.println("Documents found (complex text query): " + result1.getDocumentCount());
手順 3: オブジェクトクエリで検索
オブジェクトベースの構築はテキストクエリと同様ですが、型安全性と IDE の支援が得られます。
import com.groupdocs.search.SearchQuery;
SearchQuery word6Query = SearchQuery.createWordQuery("lorem");
SearchQuery word7Query = SearchQuery.createWordQuery("ipsum");
// Constructing AND, OR queries for filename field
SearchQuery andQuery = SearchQuery.createAndQuery(word6Query, word7Query);
SearchQuery filenameQuery = SearchQuery.createFieldQuery(CommonFieldNames.FileName, andQuery);
// Content search using OR query with phrases
SearchQuery phrase1Query = SearchQuery.createPhraseSearchQuery("lectus", "eu", "aliquam");
SearchQuery phrase2Query = SearchQuery.createPhraseSearchQuery("dignissim", "turpis");
SearchQuery contentQuery = SearchQuery.createFieldQuery(CommonFieldNames.Content,
SearchQuery.createOrQuery(phrase1Query, phrase2Query));
// Final root query combining filename and content queries
SearchQuery rootQuery = SearchQuery.createOrQuery(filenameQuery, contentQuery);
SearchResult result2 = index.search(rootQuery);
// Output search results
System.out.println("Documents found (complex object query): " + result2.getDocumentCount());
ファセット検索と複合検索の実用例
| Scenario | How faceting helps | Example query |
|---|---|---|
| E‑commerce カタログ | カテゴリ、価格、ブランドでフィルタリング | category: Electronics AND price:[100 TO 500] |
| 法務文書リポジトリ | ケース番号や管轄で絞り込み | caseNumber: 2023-045 AND jurisdiction: "California" |
| 研究アーカイブ | 著者、出版年、キーワードを組み合わせる | (author: "Doe") AND (year: 2022) AND (keywords: "machine learning") |
| エンタープライズイントラネット | ファイルタイプと部門で検索 | filetype: pdf AND department: HR |
これらの例は、boolean operators java と filename search java のテクニックを習得することが、データ集約型アプリケーションにとっていかに画期的であるかを示しています。
よくある落とし穴とトラブルシューティング
SearchResult オブジェクトはクエリに一致するドキュメントを保持し、関連スコアとハイライトされたフラグメントへのアクセスを提供します。CommonFieldNames クラスは、API 全体で使用される Content や FileName などの標準フィールド名を定義します。
- Empty results – ドキュメントが正常に追加されたか確認してください(
index.getDocumentCount()が役立ちます)。 - Stale index – ファイルを追加または削除した後、
index.update()を呼び出して update index java を実行し、インデックスを同期させます。 - Incorrect field names – タイプミスを防ぐために
CommonFieldNames定数(Content、FileNameなど)を使用してください。 - Performance bottlenecks – 大規模コレクションの場合、
index.setCacheSize()を有効にするか、インデックスフォルダー用に専用 SSD の使用を検討してください。 - Missing highlights – highlight search results java を実行するには、
SearchResult.getFragments()を使用して一致したフラグメントを取得します(ここでは示していませんが API で利用可能です)。
よくある質問
Q: GroupDocs.Search を Spring Boot で使用できますか?
A: もちろんです。Maven 依存関係を追加し、インデックスを Spring Bean として構成し、検索機能が必要な場所にインジェクトします。
Q: ライブラリはカスタムメタデータフィールドをサポートしていますか?
A: はい。インデックス作成時にユーザー定義フィールドを追加でき、ファセットにも使用できます。
Q: インデックスはどの程度まで拡大できますか?
A: ディスクベースのインデックスは最大 1,000 万件のドキュメントを処理できます。十分なストレージを確保し、キャッシュ設定を監視してください。
Q: 結果を関連性でランク付けする方法はありますか?
A: GroupDocs.Search は自動的にマッチをスコア付けします。スコアは SearchResult.getDocument(i).getScore() で取得できます。
Q: 暗号化された PDF をインデックスに追加した場合はどうなりますか?
A: ドキュメントを追加する際にパスワードを指定してください:index.add(filePath, password)。
結論
これで、GroupDocs.Search を使用して creating a search index Java を行い、ドキュメントを追加し、シンプルなファセットクエリと高度な Boolean 検索(boolean operators java を使用)を作成することに慣れたはずです。これらの機能により、e‑commerce プラットフォームからエンタープライズナレッジベースまで、幅広いアプリケーションで高速かつ正確でユーザーフレンドリーな検索体験を提供できるようになります。
次のステップに進む準備はできましたか?GroupDocs.Search の高度な機能(highlighting、suggestions、real‑time indexing など)を探求し、アプリケーションの検索力をさらに高めましょう。
最終更新: 2026-08-26
テスト環境: GroupDocs.Search 25.4 for Java
作者: GroupDocs