Javaフルテキスト検索:GroupDocs.Searchでインデックスを構築する

クイック回答

  • 「javaフルテキスト検索」とは何ですか? Javaアプリケーションで多数のファイルに対して高速なテキストクエリを可能にするインデックスを構築するプロセスです。
  • どのライブラリがすぐに使えますか? GroupDocs.Search for Java は、即時利用可能なインデックス作成、辞書管理、クエリ実行を提供します。
  • ライセンスは必要ですか? 評価には無料トライアルで十分です。製品環境での導入にはフルライセンスが必要です。
  • 文字処理をカスタマイズできますか? もちろんです。アルファベット辞書を使用してカスタム文字タイプを定義できます。
  • Mavenは必須ですか? Mavenは依存関係の管理を簡素化しますが、JARを直接ダウンロードすることも可能です。

javaフルテキスト検索とは何か、そしてアルファベット辞書を管理する理由

javaフルテキスト検索 インデックスはドキュメントをトークン化した表現を保存し、単語やフレーズを瞬時に検索できるようにします。アルファベット辞書はエンジンに各文字(文字、数字、記号)をどのように扱うかを指示し、トークン化と検索の関連性に直接影響します。特に特殊記号や言語固有の規則において重要です。

javaフルテキスト検索にGroupDocs.Searchを使用する理由

GroupDocs.Search は、メモリに全体を読み込むことなく最大 10,000 ドキュメント を処理し、サブ秒レベルのクエリ応答時間を実現します。文字タイプの完全な制御を提供し、50 以上の入力および出力フォーマット をサポートし、複数サーバーに横方向にスケールできるため、エンタープライズ向け検索の最も堅牢な選択肢です。

前提条件

  • GroupDocs.Search for Java(最新リリース)。
  • 開発マシンに Java 17 以上がインストールされていること。
  • Maven 3.6+(または手動で JAR を追加できる環境)。

必要なライブラリ、バージョン、依存関係

  • GroupDocs.Search for Java – 最新の安定版。
  • 基本的なインデックス作成に追加のサードパーティライブラリは必要ありません。

環境設定要件

Maven 互換の環境があることを確認してください。Maven がまだインストールされていない場合は、公式サイトからダウンロードしてください: Apache Maven。

知識の前提条件

Java の構文とファイル I/O に慣れていると役立ちますが、以下のステップバイステップガイドですべてカバーしています。

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>

直接ダウンロード

Maven を使用したくない場合は、公式リリースページから最新の JAR を取得してください: GroupDocs.Search for Java releases。

ライセンス取得手順

  1. 無料トライアル – すべての機能を試すためにトライアルから開始します。
  2. 一時ライセンス – 長期テスト用に一時キーをリクエストします。
  3. フルライセンス – 無制限に使用できる本番ライセンスを購入します。

基本的な初期化と設定

検索インデックスが保存されるフォルダーを指す Index インスタンスを作成します:

import com.groupdocs.search.*;

public class SearchIndexSetup {
    public static void main(String[] args) {
        String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\Index";
        Index index = new Index(indexFolder);
    }
}

実装ガイド

以下は、javaフルテキスト検索 ソリューションを構築する際に実行する最も一般的な操作の完全な手順です。

インデックスの作成またはオープン

Index クラスは、ディスク上に保存された検索可能なコレクションを表すコアオブジェクトです。

import com.groupdocs.search.*;

String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\Index";
Index index = new Index(indexFolder);
  • パラメータ: indexFolder – インデックスファイルが保存されているパス。
  • 目的: 後続のインデックス作成とクエリ実行のための検索環境を設定します。

アルファベット辞書をファイルへエクスポート

AlphabetDictionary オブジェクトは文字タイプのマッピングを保持します。エクスポートすることで、後で設定を再利用または分析できます。

import com.groupdocs.search.dictionaries.*;

String fileName = "YOUR_OUTPUT_DIRECTORY\\Alphabet.dat";
index.getDictionaries().getAlphabet().exportDictionary(fileName);
  • パラメータ: fileName – エクスポートされた辞書の保存先ファイル。

アルファベット辞書のクリア

カスタムルールを適用する前に、辞書をデフォルト状態にリセットします:

import com.groupdocs.search.dictionaries.*;

if (index.getDictionaries().getAlphabet().getCount() > 0) {
    index.getDictionaries().getAlphabet().clear();
}
  • 目的: 以前に定義されたすべての文字タイプを削除し、クリーンな状態にします。

ファイルからアルファベット辞書をインポート

以前に保存した辞書設定を復元します:

import com.groupdocs.search.dictionaries.*;

index.getDictionaries().getAlphabet().importDictionary(fileName);
  • パラメータ: fileName – 辞書を含む .dat ファイルへのパス。

アルファベット辞書で文字タイプを設定

CharacterType 列挙型は、トークン化時に文字がどのように解釈されるかを指定します。特定の文字のトークン化時の扱いをカスタマイズできます。CharacterType.Blended の値は、ハイフンを区切り文字ではなく単語の一部として扱うようエンジンに指示します。

import com.groupdocs.search.dictionaries.*;

if (index.getDictionaries().getAlphabet().getCharacterType('-') != CharacterType.Blended) {
    index.getDictionaries().getAlphabet().setRange(new char[] { '-' }, CharacterType.Blended);
}
  • パラメータ: 文字 ('-') と新しい CharacterType。
  • 重要性: 文字タイプを調整することで、ハイフン付き語句、ID、カスタム記号の検索関連性が向上します。

フォルダーからドキュメントをインデックス化

ディレクトリ内のすべてのファイルを一括で検索インデックスに追加します:

import com.groupdocs.search.*;

String documentsFolder = "YOUR_DOCUMENT_DIRECTORY";
index.add(documentsFolder);
  • パラメータ: documentsFolder – インデックス化したいドキュメントが格納されたフォルダー。

インデックス内検索

SearchResult クラスは、クエリによって返された一致したドキュメントとスニペットのリストを保持します。クエリを実行して一致する結果を取得します:

import com.groupdocs.search.results.*;

String query = "Elliot-Murray-Kynynmound";
SearchResult result = index.search(query);
  • パラメータ: query – 探しているテキスト。
  • 結果: 一致したドキュメントとスニペットを含む SearchResult オブジェクト。

javaフルテキスト検索の一般的なユースケース

  • コンテンツ管理システム(CMS): 記事やアセットの取得を高速化します。
  • 法務文書リポジトリ: 条項や判例参照を瞬時に検索します。
  • 研究図書館: 数千件の論文をインデックス化し、キーワード検索を瞬時に行えます。
  • Eコマースカタログ: カスタムトークン化で製品検索を強化します。
  • カスタマーサポートポータル: エージェントが関連チケットやナレッジベース記事を迅速に見つけられます。

パフォーマンス上の考慮点

  • インクリメンタル更新: 新規または変更されたファイルのみを再インデックスし、フルリビルドなしでインデックスを最新に保ちます。
  • クエリ最適化: クエリは簡潔に保ち、過度に広いワイルドカード検索は避けます。
  • リソース監視: 大規模バッチインデックス時のメモリ使用量を監視し、必要に応じて JVM ヒープサイズを調整します。
  • 辞書サイズ: 辞書を変更したときだけエクスポート/インポートし、不要な I/O が起動を遅くしないようにします。

よくある質問

Q: GroupDocs.Search を使用する前提条件は何ですか?
A: Java 17 以上、Maven 3.6 以上(または JAR をダウンロード)をインストールし、GroupDocs.Search の依存関係を追加します。

Q: 本番利用のライセンスはどう取得しますか?
A: 無料トライアルで開始し、長期テスト用に一時キーをリクエストし、最後に GroupDocs ポータルからフルライセンスを購入します。

Q: アルファベット辞書の文字タイプはカスタマイズできますか?
A: はい。setRange または set メソッドを使用して、任意の文字や範囲にカスタム CharacterType 値を割り当てます。

Q: アルファベット辞書のエクスポートとインポートは可能ですか?
A: もちろんです。exportDictionary と importDictionary メソッドを使用して、辞書設定を永続化または共有できます。

Q: このガイドはどのバージョンでテストされましたか?
A: 例は GroupDocs.Search for Java バージョン 25.4 で検証されています。


最終更新日: 2026-09-06
テスト環境: GroupDocs.Search for Java 25.4
作者: GroupDocs

関連チュートリアル