検索可能インデックスを作成 Java – GroupDocs.Search for Java のデプロイ

今日のデータ駆動型の世界では、creating a searchable index java アプリケーションは大量のドキュメントコレクションを効率的に処理する必要があります。エンタープライズ向けの検索サービスを構築する場合でも、より小規模なプロジェクトの場合でも、適切に構成された検索ネットワークは取得速度と関連性を大幅に向上させます。このガイドでは、GroupDocs.Search for Java のセットアップ全工程を、検索対象ファイルの追加からノードへのディレクトリ追加まで順に説明し、すぐにドキュメントのインデックス作成を開始できるようにします。

クイック回答

  • What is the primary purpose of GroupDocs.Search? 分散ネットワーク上でドキュメントのインデックス作成と検索を行う、スケーラブルな Java ベースのエンジンを提供します。
  • Which version should I use? 最新の安定版リリース(例: 25.4)が新規プロジェクトに推奨されます。
  • Do I need a license? 30 日間の無料トライアルが利用可能です。製品環境で使用するには永続ライセンスが必要です。
  • Can I add both files and whole directories? はい – addFilesaddDirectories ヘルパーを使用してコンテンツを取り込むことができます。
  • What Java version is required? Java 8 以上、依存関係管理には Maven が必要です。

“create searchable index java” とは何ですか?

Java で検索可能インデックスを作成することは、用語をそれを含むドキュメントにマッピングするデータ構造を構築し、迅速な全文検索を可能にすることを意味します。GroupDocs.Search は重い処理を抽象化し、ドキュメントの投入と検索動作のチューニングに集中できるようにします。

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

  • Scalable network architecture – インデックス作業負荷を共有する複数のノードをデプロイします。
  • Rich document format support – PDF、Word、Excel、PowerPoint、画像など多数の形式をサポートします。
  • Event‑driven updates – ノードイベントを購読してインデックスをリアルタイムで最新に保ちます。
  • Simple Maven integrationpom.xml に数行追加するだけでインデックス作成を開始できます。

前提条件

  • JDK 8+ が開発マシンにインストールされていること。
  • IntelliJ IDEAEclipse などの IDE。
  • JavaMaven の基本的な知識。
  • GroupDocs.Search for 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>

Pro tip: 公式リリースページでバージョン番号を最新に保ってください。

公式サイトから JAR を直接ダウンロードすることもできます: GroupDocs.Search for Java releases.

ライセンス取得

  • Free Trial: 30 日間の評価。
  • Temporary License: 拡張テスト用にリクエスト。
  • Purchase: 本番環境でのデプロイには購入が必要です。

基本初期化

インデックスファイルが保存されるフォルダーを指し、ベース通信ポートを定義する構成オブジェクトを作成します:

import com.groupdocs.search.Configuration;

class InitializeSearch {
    public static void main(String[] args) {
        String basePath = "your/base/path";
        int basePort = 8080;
        
        Configuration config = new ConfiguringSearchNetwork().configure(basePath, basePort);
        // Use this configuration for subsequent operations
    }
}

GroupDocs.Search を使用して searchable index java を作成する方法は?

以下では、add files to searchadd directories to node に必要なコア機能を分解し、スケーラブルなネットワークのデプロイ方法も説明します。

機能 1 – 設定とネットワーク構築

検索ネットワークの構成は、検索可能インデックスを構築するための最初のステップです。

import com.groupdocs.search.Configuration;
import com.groupdocs.search.scaling.*;

class ConfiguringSearchNetwork {
    public static Configuration configure(String basePath, int basePort) {
        // Configure the search network with specified base path and port
        return new Configuration(basePath, basePort);
    }
}
  • basePath – インデックスデータが永続化されるディレクトリ。
  • basePort – 開始ポート。各ノードはこの値からインクリメントされます。

機能 2 – 検索ネットワークノードのデプロイ

ノードをデプロイすることで、インデックス作業負荷が複数のマシンやプロセスに分散されます。

import com.groupdocs.search.scaling.*;

class SearchNetworkDeployment {
    public static SearchNetworkNode[] deploy(String basePath, int basePort, Configuration configuration) {
        // Deploy nodes based on the provided configuration
        return new SearchNetworkNode[]{new SearchNetworkNode()};
    }
}

SearchNetworkNode は独自のインデックスサービスを実行し、水平にスケールする create a searchable index java を可能にします。

機能 3 – ノードイベントの購読

リアルタイムの更新により、インデックスがファイルシステムの変更と同期されます。

import com.groupdocs.search.scaling.*;

class SearchNetworkNodeEvents {
    public static void subscribe(SearchNetworkNode node) {
        // Logic to subscribe to the specified node's events
    }
}

イベントをリッスンすることで、新しいファイルが到着した際に自動的に再インデックスをトリガーできます。

機能 4 – ネットワークノードへのディレクトリ追加

このヘルパーを使用して add directories to node を行い、サポートされているすべてのドキュメントを再帰的に収集します。

import java.io.File;
import java.util.ArrayList;

class DirectoryAdder {
    public static void addDirectories(SearchNetworkNode node, String... directoryPaths) {
        ArrayList<String> files = new ArrayList<>();
        for (String directoryPath : directoryPaths) {
            final File folder = new File(directoryPath);
            listFiles(folder, files);
        }
        addFiles(node, files.toArray(new String[0]));
    }

    private static void listFiles(final File folder, ArrayList<String> list) {
        for (final File fileEntry : folder.listFiles()) {
            if (fileEntry.isDirectory()) {
                listFiles(fileEntry, list);
            } else {
                list.add(fileEntry.getPath());
            }
        }
    }
}

機能 5 – ネットワークノードへのファイル追加

細かい制御が必要な場合は、add files to search を個別に実行します:

import com.groupdocs.search.Document;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
import org.apache.commons.io.FilenameUtils;
import com.groupdocs.search.Indexer;
import com.groupdocs.search.options.*;

class FileAdder {
    public static void addFiles(SearchNetworkNode node, String... filePaths) {
        try {
            InputStream[] streams = new FileInputStream[filePaths.length];
            Document[] documents = new Document[filePaths.length];
            for (int i = 0; i < filePaths.length; i++) {
                String filePath = filePaths[i];
                InputStream stream = new FileInputStream(filePath);
                streams[i] = stream;
                
                // Create a document from the input stream
                String fileName = FilenameUtils.getName(filePath);
                String extension = "." + FilenameUtils.getExtension(filePath);
                Document document = Document.createFromStream(
                    fileName,
                    new Date(),
                    extension,
                    stream);
                documents[i] = document;
            }

            // Initialize the indexer and configure options
            Indexer indexer = node.getIndexer();
            IndexingOptions options = new IndexingOptions();
            options.setUseRawTextExtraction(false);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

このメソッドにより、ストリーム、クラウドストレージ、または一時的な場所からのファイルをインデックス化する柔軟性が得られます。

よくある問題と解決策

IssueReasonFix
検索結果にドキュメントが表示されないインデックスがコミットされていないnode.getIndexer().commit() をファイル追加後に呼び出してください。
ポート競合エラー別のサービスが basePort を使用している別の basePort を選択するか、空きポートを確認してください。
サポートされていないファイル形式ライブラリにパーサーが無いファイル拡張子がサポートされていることを確認するか、カスタムエクストラクタを追加してください。

よくある質問

Q: Can I use GroupDocs.Search on a cloud‑based Java application?
A: はい。ライブラリは任意の Java ランタイムで動作し、basePath をネットワーク上にマウントされたフォルダーやローカルにマウントされたクラウドストレージに設定できます。

Q: How do I update the index when a file changes?
A: ノードイベントを購読(Feature 3 を参照)し、変更されたパスに対して addFiles または addDirectories を再度呼び出します。

Q: Is there a limit to the number of nodes I can deploy?
A: 実質的には、ハードウェアとネットワーク帯域幅が上限を決定します。API自体にハードな上限はありません。

Q: Do I need to restart nodes after adding new files?
A: いいえ。ファイルを追加すると自動的にインデックスがトリガーされます。操作を遅延させた場合のみコミットが必要です。

Q: Which document formats are supported out of the box?
A: PDF、DOC/DOCX、XLS/XLSX、PPT/PPTX、TXT、HTML、そして多数の画像形式がサポートされています。完全な一覧は公式ドキュメントをご確認ください。


最終更新: 2025-12-26
テスト環境: GroupDocs.Search for Java 25.4
作者: GroupDocs