Java 用の GroupDocs Search ネットワークの構成方法

今日の高速に変化するデジタル環境では、configure groupdocs search network スキルは、数百万のドキュメントを迅速かつ信頼性をもって検索する必要がある組織にとって必須です。適切に構成された検索ネットワークはインデックス作成とクエリ処理の負荷を複数の JVM ノードに分散し、応答時間を低く保ち、高可用性を保証します。このチュートリアルでは、Maven の設定とライセンスの有効化からノードのデプロイ、イベント購読、ドキュメントのインデックス作成、さらには画像検索まで、すべての手順を順を追って解説し、Java で本番環境向けの GroupDocs.Search ネットワークを構築できるようにします。

クイック回答

  • 検索ネットワークの主な目的は何ですか? インデックス作成とクエリの負荷を複数ノードに分散し、スケーラビリティと信頼性を向上させることです。
  • GroupDocs.Search がデフォルトで使用するポートはどれですか? 例ではポート 49120 を使用していますが、任意の空きポートを選択できます。
  • ダウンタイムなしでノードを追加または削除できますか? はい。ノードは動的にデプロイまたは退役できます。
  • 本番環境でライセンスは必要ですか? 本番利用にはフルライセンスが必要です。評価用のトライアルライセンスも利用可能です。
  • 画像検索は標準でサポートされていますか? はい。GroupDocs.Search は組み込みの画像ハッシュ比較を提供します。

検索ネットワークとは?

SearchNetworkNode はクラスター内の個々のノードで、共有インデックスのコピーを保持し検索リクエストを処理します。検索ネットワーク は相互接続された SearchNetworkNode インスタンスの集合で、インデックス情報を共有し協調してクエリに応答します。このアーキテクチャにより、大規模なドキュメントコレクションを低遅延で処理でき、ノードがオフラインになった場合の自動フェイルオーバーも実現します。

なぜ Java 用 GroupDocs.Search を使用するのか?

数分で configure groupdocs search network が可能な検索エンジンを Java アプリケーションに組み込み、水平スケーリングと 30 以上のファイル形式(PDF、DOCX、XLSX、PPTX、一般的な画像形式など)をサポートします。ベンチマークでは、標準サーバーハードウェア上の 3 ノードクラスターが 30 分未満で 500,000 ドキュメントをインデックスし、同時負荷が高い状況でもクエリ遅延は 200 ms 未満に抑えられます。

前提条件

  • JDK 8+ がノードを実行するすべてのマシンにインストールされていること。
  • IntelliJ IDEA または Eclipse などの IDE がプロジェクト管理を容易にします。
  • 依存関係解決のための Maven。
  • Java ネットワーキング(TCP ポート、ファイアウォール)とマルチスレッドの基本知識。

必要なライブラリと依存関係

pom.xml に GroupDocs リポジトリと依存関係を追加します:

<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 からダウンロードしてください。

Java 用 GroupDocs.Search の設定

Maven によるインストール

上記の Maven スニペットはライブラリを自動的にプロジェクトへ取り込みます。

ライセンス取得

  • Free Trial – クレジットカード不要でコア機能を試せます。
  • Temporary License – 社内パイロット向けの拡張テスト期間。
  • Full License – 本番環境向けの無制限使用と優先サポート。

基本的な初期化と設定

SearchNetworkDeployment クラスは検索クラスターの作成と管理、ノードのライフサイクル、共有リソースを統括します。任意のノードとやり取りする前に、SearchNetworkDeployment オブジェクトを作成し、共有インデックスフォルダーを指す必要があります。以下のコードブロック(元チュートリアルからそのまま保持)に最小限のブートストラップが示されています:

import com.groupdocs.search.*;

public class SearchSetup {
    public static void main(String[] args) {
        // Create an instance of Index with the path to store index data.
        String indexPath = "path/to/index";
        Index index = new Index(indexPath);
        
        System.out.println("GroupDocs.Search initialized successfully.");
    }
}

実装ガイド

ここからは各コアタスクを、元コードプレースホルダーに続く明確なステップバイステップの説明とともに掘り下げていきます。

検索ネットワークへのノード展開方法

複数ノードを展開すると負荷が分散され、障害耐性が向上します。SearchNetworkNode は検索クラスターに参加する個々の JVM インスタンスで、インデックス作成とクエリ要求を処理します。連続したポートで複数ノードを起動することで、各ノードがクライアント呼び出しに応答し、共通インデックスを共有するレジリエントなネットワークが構築されます。

public class SearchNetworkDeployment {
    public static void run() {
        String basePath = "YOUR_DOCUMENT_DIRECTORY";
        int basePort = 49120; // Change if necessary.
        Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);

        SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);
        
        System.out.println("Deployed " + nodes.length + " search network nodes.");
    }
}

イベント購読方法

イベント購読によりノードの健康状態、インデックス進捗、エラーをリアルタイムで把握できます。SearchNetworkEvents クラスはインデックス完了、ノード障害、カスタム通知などの重要アクションが発生した際に呼び出されるコールバックのセットを提供します。マスターノードまたはワーカーノードでリスナーを登録すると、ネットワークのスムーズな運用を支えるリアルタイム監視と自動応答が可能になります。

public class NodeEventSubscription {
    public static void run() {
        String basePath = "YOUR_DOCUMENT_DIRECTORY";
        int basePort = 49120; // Adjust if needed.
        Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
        SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);

        SearchNetworkEvents.subscribe(nodes[0]);
        
        System.out.println("Subscribed to events for the master node.");
    }
}

ドキュメントのインデックス作成方法

効率的なインデックス作成は高速検索結果の基盤です。マスターノードにディレクトリを追加すると、エンジンは各ファイルを走査し検索可能なコンテンツを抽出して共有インデックス構造に格納します。このプロセスは増分的に実行でき、変更されたファイルのみを更新するため I/O 負荷が軽減され、クエリは常に最新のドキュメントバージョンを反映します。

public class DocumentIndexing {
    public static void run() {
        String basePath = "YOUR_DOCUMENT_DIRECTORY";
        int basePort = 49120; // Change if there is a conflict.
        Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
        SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);

        IndexingDocuments.addDirectories(nodes[0], "YOUR_DOCUMENT_DIRECTORY");
        
        System.out.println("Added directories to master node's index.");
    }
}

画像検索の実行方法

GroupDocs.Search は画像ハッシュ比較をサポートし、視覚的に類似した資産を特定できます。SearchImage クラスは画像ファイルをラップし、インデックスに保存されたハッシュと照合可能な知覚ハッシュを計算します。最大ハッシュ差を指定することで視覚的類似度の許容範囲を制御し、リポジトリ内の重複または関連画像の信頼できる検出が可能になります。

public class ImageSearch {
    public static void run() {
        String basePath = "YOUR_DOCUMENT_DIRECTORY";
        int basePort = 49120; // Modify if needed.
        Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
        SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);

        SearchImage searchImage = SearchImage.create("YOUR_DOCUMENT_DIRECTORY/ic_arrow_back_black_18dp.png");

        imageSearch(nodes[0], searchImage, 8);
    }
}

ネットワークポートの設定方法

環境ですでにポート 49120 を使用している場合は、任意の空き TCP ポートに変更できます。basePort パラメータはクラスターの開始ポート番号を決定し、以降のノードは自動的にこの値をインクリメントします。選択したポートがファイアウォールで開放され、他のサービスと競合せず、すべてのノードで一貫して設定されていることを確認し、シームレスな通信を維持してください。

int customPort = 50000; // Example of a custom port.
Configuration configuration = ConfiguringSearchNetwork.configure(basePath, customPort);

共通の問題とトラブルシューティング

症状考えられる原因対策
ノードが起動しないポート競合別の basePort を選択し、ファイアウォール規則を更新する。
インデックス作成が遅いI/O 帯域不足SSD ストレージを使用し、増分インデックス作成を有効にする。
イベント購読が発火しないイベントハンドラ登録漏れインデックス開始前に SearchNetworkEvents.subscribe(node) が呼び出されていることを確認する。
画像検索で結果が返らないハッシュ差が小さすぎる許容ハッシュ差を増やす(例: 4 から 8 に)

よくある質問

Q: GroupDocs.Search ネットワークでインデックス性能を最適化するには?
A: 増分インデックス作成を使用し、インデックスを高速 SSD に保存し、JVM に十分なヒープメモリを割り当てます。

Q: 全体の検索ネットワークを再起動せずにノードを追加または削除できますか?
A: はい。ノードは動的にデプロイまたは退役できます。ノード追加後は SearchNetworkDeployment.deploy を再度呼び出してクラスター表示を更新します。

Q: イベント購読はネットワーク管理をどのように改善しますか?
A: 購読されたイベントはノード状態の変化、インデックス進捗、エラーに関するリアルタイムアラートを提供し、プロアクティブなトラブルシューティングを可能にします。

Q: 複数のドキュメント形式を同時に検索できますか?
A: もちろんです。GroupDocs.Search は PDF、Word、Excel、PowerPoint、画像など多数の形式を単一クエリで検索できます。

Q: GroupDocs.Search ネットワーク内のデータはどれほど安全ですか?
A: セキュリティはインフラに依存します。ノード間通信に SSL/TLS を導入し、ネットワークアクセスを制限し、データ保護のベストプラクティスに従ってください。


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

関連チュートリアル