Boolean Operators Java – 検索インデックスの作成とファセット検索
Javaで強力な search experience を実装することは圧倒されがちです。特に、ファセット検索や複雑なクエリに対応する create a search index Java と boolean operators Java が必要な場合はなおさらです。このチュートリアルでは GroupDocs.Search for Java の設定、インデックスの構築、ドキュメントの追加、シンプルなファセット検索と高度なマルチクライテリアクエリ(Booleanロジック使用)を作成する手順を解説します。最後まで読むと content search Java、filename search Java、さらには update index java 操作を活用してデータを最新に保つ方法が理解できます。
クイック回答
- What is a faceted search? 事前に定義されたカテゴリ(ファイルタイプや日付など)で結果を絞り込む方法です。
- How do I create a search index Java? フォルダーを指す
Indexオブジェクトを初期化し、ドキュメントを追加します。 - Can I combine multiple criteria with boolean operators? はい—オブジェクトベースのクエリまたはテキストクエリ内の Boolean 演算子を使用します。
- Do I need a license? 無料トライアルは開発・テストに利用可能です。商用ライセンスは制限を解除します。
- Which IDE works best? 任意の Java IDE(IntelliJ IDEA、Eclipse、NetBeans)で問題ありません。
“create search index java” とは何ですか?
Javaで検索インデックスを作成することは、ドキュメントのメタデータとコンテンツを格納し、ユーザークエリに基づく高速検索を可能にする検索可能なデータ構造を構築することを意味します。GroupDocs.Search を使用すると、インデックスはディスク上に保存され、増分で更新でき、ファセットや boolean operators Java、複雑な Boolean ロジックといった高度な機能をサポートします。
ファセット検索と複雑なクエリに GroupDocs.Search を使用する理由
- Out‑of‑the‑box faceting – ファイル名、サイズ、カスタムメタデータなどのフィールドでフィルタリングできます。
- Rich query language – テキスト、フレーズ、フィールドクエリを AND/OR/NOT 演算子で組み合わせます(boolean operators java のコア)。
- Scalable performance – 数百万件のドキュメントを扱いながら低レイテンシを維持します。
- Pure Java – ネイティブ依存がなく、JDK 8+ が動作する任意のプラットフォームで利用可能です。
- Easy index maintenance – ファイルの追加・削除後に
index.update()を呼び出すだけで update index 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 releases
ライセンス取得
フル機能を有効化するには:
- Free trial – 開発・テストに最適です。
- Temporary evaluation license – トライアルの制限を拡張します。
- Commercial license – 本番環境でのすべての制限を解除します。
基本的な初期化と設定
以下のスニペットは 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 の使用方法 – シンプルなファセット検索
ファセット検索は、エンドユーザーが事前定義されたカテゴリ(ファセット)から値を選択して結果を絞り込むことを可能にします。以下にステップバイステップで説明します。
手順 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 の使用方法 – 複合クエリ検索
複合クエリは複数のフィールド、Boolean 演算子、フレーズ検索を組み合わせます。e‑commerce のフィルタや法務文書の検索に最適です。
手順 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());
ファセット検索と複合検索の実用例
| シナリオ | ファセットが役立つ方法 | クエリ例 |
|---|---|---|
| E‑commerce catalog | カテゴリ、価格、ブランドでフィルタリング | category: Electronics AND price:[100 TO 500] |
| Legal document repository | ケース番号、管轄で絞り込み | caseNumber: 2023-045 AND jurisdiction: "California" |
| Research archives | 著者、出版年、キーワードを組み合わせ | (author: "Doe") AND (year: 2022) AND (keywords: "machine learning") |
| Enterprise intranet | ファイルタイプと部署で検索 | filetype: pdf AND department: HR |
これらの例は、boolean operators java と filename search java のテクニックを習得することが、データ集約型アプリケーションにとっていかに重要かを示しています。
よくある落とし穴とトラブルシューティング
- 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: インデックスはディスクベースで、数百万件のドキュメントを処理可能です。十分なストレージとキャッシュ設定の監視を行ってください。
Q: 結果を関連度でランク付けする方法はありますか?
A: GroupDocs.Search は自動的にマッチ度をスコア付けします。SearchResult.getDocument(i).getScore() でスコアを取得できます。
Q: 暗号化された PDF をインデックス化した場合はどうなりますか?
A: ドキュメント追加時にパスワードを指定します:index.add(filePath, password)。
結論
これで GroupDocs.Search を使用した create a search index Java の作成、ドキュメントの追加、シンプルなファセットクエリと高度な Boolean 検索(boolean operators java)の構築方法が理解できたはずです。これらの機能により、e‑commerce プラットフォームからエンタープライズナレッジベースまで、幅広いアプリケーションで高速かつ正確な検索体験を提供できます。
次のステップに進みませんか? GroupDocs.Search の高度な機能(highlighting、suggestions、real‑time indexing など)を探求し、アプリケーションの検索パワーをさらに向上させましょう。
最終更新日: 2026-02-16
テスト環境: GroupDocs.Search 25.4 for Java
作者: GroupDocs