GroupDocs.Search Java ネットワークで分散検索を構成する

今日のデータ駆動型の世界では、分散検索の構成は、大量のドキュメントコレクションを扱いながら応答時間を低く保つために不可欠です。このチュートリアルでは、堅牢な GroupDocs.Search for Java ネットワークの設定方法を説明し、複数ノードにわたる検索のデプロイ、インデックスへのドキュメント追加、そして信頼性の高い通信のためのTCP 設定の構成を示します。最後まで読むと、プロダクション向けのスケーラブルな検索ソリューションが手に入り、このアーキテクチャが単一ノード構成よりも優れている理由が明確になります。

クイック回答

  • 分散検索の構成とは何ですか? それは、複数の独立した検索ノードをリンクし、共同でインデックス作成とクエリ応答を行い、スループットと耐障害性を向上させるプロセスです。
  • 推奨されるノード数は? 通常、3〜5 ノードが多くのエンタープライズワークロードに対して、パフォーマンスと耐障害性のバランスが取れています。
  • ライセンスは必要ですか? はい – GroupDocs.Search の本番使用には、一時的またはフルライセンスが必要です。
  • どのポートを使用すべきですか? サーバーで使用可能なポートを選択してください。例では 49136‑49139 を使用していますが、任意の空きポート範囲で構いません。
  • デプロイ後に新しいドキュメントを追加できますか? もちろんです – ネットワークを再起動せずに、いつでも インデックスにドキュメントを追加 できます。

分散検索の構成とは何ですか?

分散検索アーキテクチャを構成することは、複数の独立した検索ノードをリンクし、インデックス作業を共有して共同でクエリに応答することを意味します。これにより、単一マシンへの負荷が軽減され、スループットと信頼性が向上し、耐障害性のための組み込み冗長性が提供されます。

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

GroupDocs.Search for Java は、高性能インデックス作成(最新ハードウェアで最大 1 GB/s)と、10 以上のノードをサポートする スケーラブルなアーキテクチャ を提供します。PDF、DOCX、XLSX、PPTX、メールファイルなど、50 以上のドキュメント形式をネイティブに理解できるため、追加のコンバータなしで事実上すべてのビジネスコンテンツをインデックス化できます。組み込みの TcpSettings クラスにより、レイテンシ、スループット、キープアライブ間隔を細かく調整でき、データセンター間でも信頼性の高いノード間通信が保証されます。TcpSettings はノード間の低レベル TCP 通信パラメータを構成します。

前提条件

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

GroupDocs.Search for Java バージョン 25.4 以上が必要です。開発環境に Java がインストールされていることを確認してください。

環境設定要件

  • Java Development Kit (JDK) 11 以上。
  • IntelliJ IDEA や Eclipse などの IDE でプロジェクト管理を容易にします。

知識の前提条件

基本的な Java プログラミングスキルと、ネットワーク構成に関する一般的な理解があると、手順をスムーズに進められます。

GroupDocs.Search for Java の設定

まず、GroupDocs.Search for Java をプロジェクトに追加します。Maven を使用するか、ライブラリを直接ダウンロードして追加できます。

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>

直接ダウンロード
あるいは、最新バージョンを GroupDocs.Search for Java releases からダウンロードしてください。

ライセンス取得

GroupDocs.Search をフルに活用するには、一時ライセンスを取得するか購入してください。無料トライアルまたはフルライセンスの取得方法については、GroupDocs のライセンスページ をご覧ください。同じ目的で GroupDocs ライセンスページ も利用できます。

基本的な初期化と設定

Java アプリケーションで GroupDocs.Search を初期化しましょう:

import com.groupdocs.search.*;

public class SearchSetup {
    public static void main(String[] args) {
        // Create an index in the specified folder
        Index index = new Index("YOUR_INDEX_DIRECTORY");

        // Add documents to the index
        index.add("YOUR_DOCUMENT_DIRECTORY");
    }
}

実装ガイド

このセクションでは、GroupDocs.Search for Java を使用した検索ネットワークの構成とデプロイ手順をご案内します。

GroupDocs.Search を使用した分散検索の構成方法は?

ネットワーク構成をロードし、ベースパスを定義し、TCP パラメータを数行のコードで設定します。この直接回答パターンは、詳細な説明に入る前に必要な手順を示します。

まず、SearchNetworkConfig オブジェクトを作成し、共有ベースディレクトリを指定し、各ノードに固有の TCP ポートを割り当てます。SearchNetworkConfig は、ベースディレクトリやノードポートなど、分散検索クラスターの設定を定義します。次に、ソケットのタイムアウト、バッファサイズ、キープアライブ動作を制御する TcpSettings をインスタンス化します。最後に、NetworkManager.deploy(config) を呼び出してクラスターを起動します。NetworkManager はクラスター内の検索ノードのデプロイと管理を担当します。

ネットワークの構成

TcpSettings クラスは、ノード間のすべての TCP レベル通信の構成ハブです。接続タイムアウト、読み書きバッファサイズ、Nagle アルゴリズムの使用有無を設定できます。

Configuration configuration = ConfiguringSearchNetwork.configure("YOUR_DOCUMENT_DIRECTORY", 49136);

ノードのデプロイ

各ノードに固有の識別子と前述の構成を提供してデプロイします。デプロイ手順はノードをクラスターに自動的に登録し、リスニングソケットを開き、バックグラウンドのインデックス作成スレッドを開始します。

public static SearchNetworkNode[] deploy(String basePath, int basePort, Configuration configuration) {
    // Define timeouts for sending and receiving data over the network.
    int sendTimeout = 3000;
    int receiveTimeout = 3000;

    // Create and start three nodes that can run on separate servers or together.
    SearchNetworkNode node1 = new SearchNetworkNode(
        1,
        basePath + "Node1",
        new TcpSettings(basePort + 1, sendTimeout, receiveTimeout)
    );
    node1.start();

    SearchNetworkNode node2 = new SearchNetworkNode(
        2,
        basePath + "Node2",
        new TcpSettings(basePort + 2, sendTimeout, receiveTimeout)
    );
    node2.start();

    SearchNetworkNode node3 = new SearchNetworkNode(
        3,
        basePath + "Node3",
        new TcpSettings(basePort + 3, sendTimeout, receiveTimeout)
    );
    node3.start();

    // Create and configure the main configuration node.
    SearchNetworkNode node0 = new SearchNetworkNode(
        0,
        basePath + "Node0",
        new TcpSettings(basePort, sendTimeout, receiveTimeout),
        new ConsoleLogger(),
        configuration
    );

    // Add an event handler to notify when the configuration is complete.
    node0.getEvents().ConfigurationCompleted.add(new EventHandler() {
        @Override
        public void invoke(Object s, EventArgs e) {
            // Event handling logic here (e.g., logging)
        }
    });

    // Configure all nodes in the network using the main configuration node.
    node0.configureAllNodes();

    // Start the search network by launching all configured nodes.
    node0.start();

    // Return an array of all deployed nodes.
    return new SearchNetworkNode[] {node0, node1, node2, node3};
}

よくある問題と解決策

  • ディレクトリアクセスエラー – 各ノードのベースディレクトリが存在し、Java プロセスに読み書き権限があることを確認してください。
  • ポート競合 – 選択したポート(例: 49136‑49139)が他のサービスで使用されていないか確認してください。netstat -an を実行してチェックできます。
  • 遅いネットワークでのタイムアウト – 高レイテンシ環境で頻繁に切断が発生する場合は、TcpSettings.setConnectionTimeout() を増やしてください。
  • インデックス破損 – インデックスフォルダーを定期的にバックアップし、NetworkManager.enableAutoRecovery() を有効にして破損したシャードを自動的に再構築してください。

実用的な適用例

分散検索ネットワークのデプロイは、さまざまなシナリオで有益です:

  1. 大規模エンタープライズシステム – 数百万件の契約書、ポリシー、レポートをインデックス化し、サブ秒レベルのクエリ応答を維持します。
  2. コンテンツ管理プラットフォーム – マルチメディア資産を横断検索する数千人の同時ユーザーに対して、ボトルネックなしでサービスを提供します。
  3. Eコマースサイト – 数百万の SKU を含むカタログで、製品検索とファセットナビゲーションを高速化します。

パフォーマンス考慮事項

分散検索の構成 環境を効率的に運用するために:

  • インデックスサイズ管理 – GroupDocs.Search は 100 GB を超えるインデックスも扱えますが、ディスク I/O を監視し、大規模コレクションは複数ノードに分割することを検討してください。
  • リソースチューニング – ワークロードに応じて Java のメモリチューニングフラグ(-Xmx8g -Xms4g)を適用し、高スループットネットワーク向けに TcpSettings.setReadBufferSize() を調整してください。
  • ヘルスモニタリング – 組み込みの NetworkHealthMonitor を使用して、ノードごとの CPU、メモリ、ネットワークレイテンシを追跡し、定義した閾値に対してアラートを設定します。

結論

このチュートリアルに従うことで、分散検索の構成 方法とスケーラブルな GroupDocs.Search Java ネットワークのデプロイ方法を学びました。このソリューションは、大規模で多様なドキュメントコレクションを扱う際に、アプリケーションの検索機能の速度と信頼性を劇的に向上させます。

次のステップ

カスタムアナライザー、同義語処理、リアルタイムインデックス作成などの高度な機能を探求し、検索体験をさらに洗練させてください。また、ネットワークを RESTful API 層と統合して、検索機能を外部クライアントに公開することもできます。

行動喚起

この堅牢なソリューションを今日からプロジェクトに実装し、パフォーマンス向上を実感してください!

よくある質問

Q: GroupDocs.Search for Java とは何ですか?
A: GroupDocs.Search for Java は、50 以上のドキュメント形式にわたってテキストをインデックス化および検索する高性能ライブラリで、Java アプリケーション向けに高速でスケーラブルな全文検索を提供します。

Q: GroupDocs.Search の一時ライセンスはどう取得しますか?
A: 無料トライアルまたは本番使用向けのフルライセンスを取得するには、GroupDocs のライセンスページ をご覧ください。

Q: ネットワーク展開後に新しいドキュメントを追加できますか?
A: はい、IndexManager.addDocument() メソッドを使用して、いつでも インデックスにドキュメントを追加 できます。変更はクラスター全体に自動的に伝搬されます。IndexManager.addDocument() は新しいドキュメントをインデックスに追加し、ネットワーク全体に伝搬します。

Q: ノード構成時の一般的な落とし穴は何ですか?
A: 主な問題は、ベースパスの不一致、ポート競合、ファイルシステム権限の不足です。各ノードの構成を再確認し、すべてのディレクトリがアクセス可能であることを確認してください。

Q: ネットワークはリアルタイムインデックス作成をサポートしていますか?
A: もちろんです。GroupDocs.Search はリアルタイムインデックス作成 API を提供しており、追加されたドキュメントはダウンタイムなしで全ノードで即座に検索可能になります。


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

関連チュートリアル