GroupDocs.Search Javaで複数のエイリアスを追加し、インデックスにドキュメントを追加する方法:包括的ガイド
今日のデータ駆動型の世界では、インデックスにドキュメントを追加しながら複数のエイリアスを追加できることが、検索ソリューションに明確なパフォーマンス優位性をもたらします。何千もの契約書、製品カタログ、研究論文をインデックス化する場合でも、GroupDocs.Search for Java を使用すれば、検索可能なインデックス構造を作成し、エイリアス辞書でクエリを微調整でき、実装はシンプルかつ高速です。
Quick Answers
- GroupDocs.Search の使用を開始する最初のステップは? Maven 依存関係を追加し、
Indexオブジェクトを初期化します。 - インデックスにドキュメントを追加するには? ファイルが格納されたフォルダーを指定して
index.add("<folder_path>")を呼び出します。 - 複雑なクエリ用にエイリアスを作成できますか? はい—エイリアス辞書を使用して短いトークンを完全なクエリ式にマッピングでき、複数のエイリアスを一括で追加することも可能です。
- エイリアス辞書のエクスポートとインポートは可能ですか? もちろんです—
exportDictionaryとimportDictionaryメソッドを使用します。 - 必要な GroupDocs.Search のバージョンは? バージョン 25.4 以降(本チュートリアルは 25.4 を使用)。
“インデックスにドキュメントを追加” とは?
インデックスにドキュメントを追加するとは、PDF、DOCX、TXT などの生ファイルを GroupDocs.Search に取り込み、ライブラリが内容を解析して 検索可能なインデックス を構築することを意味します。インデックス化が完了すれば、すべてのドキュメントに対して高速な全文検索を実行できます。
なぜエイリアスを管理するのか?
エイリアスを使用すると、長くて繰り返し出現するクエリフラグメントを短く覚えやすいトークン(例:@t → (gravida OR promotion))に置き換えられます。これにより検索文字列が短くなるだけでなく、可読性・保守性が向上し、検索パフォーマンスの最適化にもつながります。特にクエリが複雑になる場合に効果的です。
複数のエイリアスを追加する方法
GroupDocs.Search は便利な addRange メソッドを提供しており、エイリアス置換ペアを一度に多数挿入できます。このバルク操作は、個別にエイリアスを追加する場合に比べてオーバーヘッドを削減します。
前提条件
作業を始める前に、以下を用意してください。
- GroupDocs.Search for Java ≥ 25.4。
- JDK(任意の最新バージョン、例:11 以上)。
- IntelliJ IDEA または Eclipse などの IDE。
- 基本的な Java と 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。
ライセンス取得手順
- 無料トライアル – コミットなしで全機能を体験。
- 一時ライセンス – 評価用に短期間のキーをリクエスト。
- 正式購入 – 本番環境で使用する永続ライセンスを取得。
基本的な初期化と設定
import com.groupdocs.search.Index;
public class GroupDocsSetup {
public static void main(String[] args) {
// Specify the directory to store indices
String indexFolder = "YOUR_DOCUMENT_DIRECTORY/Indexes/Index";
// Create or open an index
Index index = new Index(indexFolder);
System.out.println("GroupDocs.Search setup complete.");
}
}
実装ガイド
以下は各機能の完全な手順です。まず説明を読み、該当するコードブロックをコピーしてください。
インデックスの作成またはオープン
インデックスにドキュメントを追加するには、まず有効な Index インスタンスが必要です。
手順 1: Index クラスをインポート
import com.groupdocs.search.Index;
手順 2: インデックスファイルの保存先を定義
String indexFolder = "YOUR_DOCUMENT_DIRECTORY/Indexes/Index";
手順 3: 新規インデックスを作成するか、既存インデックスを開く
Index index = new Index(indexFolder);
インデックスへのドキュメント追加
インデックスが作成されたら、インデックスにドキュメントを追加します。
手順 1: ソースフォルダーを指定
String documentsFolder = "YOUR_DOCUMENT_DIRECTORY/Documents";
手順 2: フォルダー内のすべてのサポート対象ファイルを追加
index.add(documentsFolder);
プロのコツ: 新しいファイルが届くたびにこの手順を実行してください。GroupDocs.Search は新規コンテンツのみをインデックス化し、既存エントリはそのまま残ります。これが incremental indexing java の本質です。
エイリアス辞書の管理
エイリアスは短いトークンを複雑なクエリ文字列にマッピングします。ここでは既存エントリのクリア、単一エイリアスの追加、そして 複数のエイリアスを一括で追加 する方法を解説します。
既存エイリアスのクリア
if (index.getDictionaries().getAliasDictionary().getCount() > 0) {
index.getDictionaries().getAliasDictionary().clear();
}
単一エイリアスの追加
index.getDictionaries().getAliasDictionary().add("t", "(gravida OR promotion)");
index.getDictionaries().getAliasDictionary().add("e", "(viverra OR farther)");
複数エイリアスの追加
AliasReplacementPair[] pairs = new AliasReplacementPair[] {
new AliasReplacementPair("d", "daterange(2017-01-01 ~~ 2019-12-31)"),
new AliasReplacementPair("n", "(400 ~~ 4000)")
};
index.getDictionaries().getAliasDictionary().addRange(pairs);
エイリアス置換のクエリ
定義した任意のエイリアスに対して、完全なテキストを取得できます。
if (index.getDictionaries().getAliasDictionary().contains("e")) {
String replacement = index.getDictionaries().getAliasDictionary().getText("e");
}
エイリアス辞書のエクスポートとインポート
エクスポートはバックアップや環境間の共有に便利です。
エイリアスのエクスポート
String fileName = "YOUR_OUTPUT_DIRECTORY/Aliases.dat";
index.getDictionaries().getAliasDictionary().exportDictionary(fileName);
エイリアスのインポート
index.getDictionaries().getAliasDictionary().importDictionary(fileName);
エイリアスクエリを使用した検索
エイリアスが設定されていれば、検索文字列は格段にシンプルになります。
String query = "@t OR @e";
SearchResult result = index.search(query);
@ 記号は GroupDocs.Search に対し、トークンを完全な式に置き換えてから検索を実行するよう指示します。
実用例
| シナリオ | エイリアスがもたらす効果 |
|---|---|
| 法務文書管理 | ケース番号(@case123)を複雑なブール句にマッピングし、検索速度を向上。 |
| E‑コマース商品検索 | 共通属性組み合わせ(@sale)を (discounted OR clearance) に置換。 |
| 研究データベース | @year2020 を使用して多数の論文に対する日付範囲フィルタに展開。 |
パフォーマンス上の考慮点
- インクリメンタルインデックス:新規または変更されたファイルのみを追加し、フルリインデックスを回避。
- JVM チューニング:大規模コーパス向けにヒープメモリを十分に確保(例:
-Xmx4g)。 - バッチエイリアス更新:
addRangeを利用して多数のエイリアスを一度に挿入し、オーバーヘッドを削減。 - 検索パフォーマンスの最適化:エイリアス辞書は必要最小限に保ち、トークンは賢く再利用してクエリ解析時間を短縮。
よくある問題と解決策
| 問題 | 解決策 |
|---|---|
| 新規ファイルが検索できない | index.add(newFolder) を再実行。GroupDocs.Search は未処理のファイルのみをインデックス化します。 |
| エイリアスが空結果になる | エイリアスキー(@)が正しく付与されているか、辞書にトークンが存在するか確認。 |
| バルクインデックス時のメモリ使用量が高い | JVM ヒープを増やす(-Xmx)と、バッチサイズを小さくしてインデックス化を分割実行。 |
FAQ(よくある質問)
Q: GroupDocs.Search for Java を使用する主なメリットは何ですか?
A: 強力な即時利用可能なインデックス作成と全文検索機能を提供し、インデックスにドキュメントを追加する作業を迅速に行い、高性能でクエリを実行できます。
Q: GroupDocs.Search はデータベースと連携できますか?
A: はい—SQL、NoSQL、CSV など任意のソースからデータを抽出し、同じ add メソッドでインデックスに投入できます。
Q: エイリアスは検索効率をどのように向上させますか?
A: 複雑なクエリロジックを一度だけ保存し、短いトークンで再利用できるため、クエリ解析時間が短縮され、人為的ミスも減少します。エイリアスで検索する際に効果が顕著です。
Q: 辞書全体を再構築せずに既存エイリアスを更新できますか?
A: 可能です—同じキーで add を呼び出すだけで、ライブラリが前の値を上書きします。
Q: 検索結果が予期せぬものになる場合はどうすればよいですか?
A: エイリアス定義が正しいか確認し、追加したドキュメントを再インデックス化し、アナライザー設定でトークン化の問題がないかチェックしてください。
最終更新日: 2026-03-06
テスト環境: GroupDocs.Search 25.4 for Java
作者: GroupDocs