Searchable Index Java を作成 – GroupDocs.Search for Java のデプロイ
今日のデータ駆動型の世界では、searchable index java を作成するアプリケーションは、大量のドキュメントコレクションを効率的に処理する必要があります。エンタープライズ向けの検索サービスを構築する場合でも、規模の小さいプロジェクトの場合でも、適切に構成された検索ネットワークは取得速度と関連性を大幅に向上させます。このガイドでは、GroupDocs.Search for Java のセットアップ全体の手順を、ファイルを検索に追加する方法からディレクトリをノードに追加する方法まで、順を追って解説しますので、すぐにドキュメントのインデックス作成を開始できます。
なぜ重要か: searchable index はクエリ遅延を秒単位からミリ秒単位に削減し、データ増加に合わせてスケールし、Web ポータル、デスクトップアプリ、クラウドマイクロサービスなど、あらゆる Java ベースのソリューションに強力な全文検索機能を追加できます。
Quick Answers
- GroupDocs.Search の主な目的は何ですか? 分散ネットワーク上でドキュメントをインデックス化および検索するための、スケーラブルな Java ベースエンジンを提供します。
- どのバージョンを使用すべきですか? 新規プロジェクトには最新の安定版(例: 25.4)を推奨します。
- ライセンスは必要ですか? 30 日間の無料トライアルが利用可能です。製品版の使用には永続ライセンスが必要です。
- ファイルとディレクトリの両方を追加できますか? はい –
addFilesとaddDirectoriesヘルパーを使用してコンテンツを取り込めます。 - 必要な Java バージョンは? Java 8 以上で、依存関係管理に Maven が必要です。
- real time indexing java はどのように機能しますか? ノードイベントにサブスクライブすることで、ファイルの変更時に自動的に再インデックス化をトリガーできます。
“create searchable index java” とは?
Java で searchable index を作成することは、用語をそれを含むドキュメントにマッピングするデータ構造を構築し、迅速な全文検索を可能にすることを意味します。GroupDocs.Search は重い処理を抽象化し、ドキュメントの投入と検索動作のチューニングに集中できるようにします。
なぜ GroupDocs.Search for Java を使うのか?
- スケーラブルなネットワークアーキテクチャ – インデックス作業負荷を共有する複数ノードをデプロイ。
- 豊富なドキュメント形式サポート – PDF、Word、Excel、PowerPoint、画像など多数。
- イベント駆動型更新 – ノードイベントにサブスクライブしてリアルタイムにインデックスを最新化。
- シンプルな Maven 統合 –
pom.xmlに数行追加するだけでインデックス作成開始。
GroupDocs.Search を使用した real time indexing java
GroupDocs.Search はファイルが追加、更新、削除されるたびにイベントを発行します。これらのイベントを処理して addFiles や addDirectories を自動的に呼び出すことで、手動操作なしでインデックスを同期させ続けられます。この手法は文書管理システム、コンテンツポータル、データ変更が頻繁に起こるあらゆるアプリケーションに最適です。
前提条件
- JDK 8+ が開発マシンにインストールされていること。
- IntelliJ IDEA または Eclipse などの IDE。
- Java と Maven の基本知識。
- 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>
プロのコツ: 公式リリースページでバージョン番号を常に最新に保ちましょう。
公式サイトから JAR を直接ダウンロードすることもできます: GroupDocs.Search for Java releases。
ライセンス取得
- 無料トライアル: 30 日間の評価版。
- 一時ライセンス: 延長テスト用にリクエスト。
- 購入: 本番環境でのデプロイには必須。
基本的な初期化
インデックスファイルを保存するフォルダーとベース通信ポートを指す設定オブジェクトを作成します。
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 search と add directories to node に必要なコア機能を分解し、スケーラブルなネットワークのデプロイ方法も示します。
機能 1 – 設定とネットワーク構成
検索ネットワークの構成は searchable index を構築する最初のステップです。
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 は独自のインデックスサービスを実行し、水平スケーリング可能な 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();
}
}
}
このメソッドにより、ストリーム、クラウドストレージ、一時的な場所からのファイルを柔軟にインデックス化できます。
主なユースケース
- エンタープライズ文書ポータル – 数千の PDF や Office ファイルを瞬時に検索。
- 法務 e‑discovery プラットフォーム – 新たな証拠が継続的に追加され、リアルタイムで検索可能。
- コンテンツ管理システム – 画像、プレゼンテーション、スプレッドシートを保存し、全文検索を実現。
よくある問題と解決策
| Issue | Reason | Fix |
|---|---|---|
| 検索結果にドキュメントが表示されない | インデックスがコミットされていない | ファイル追加後に node.getIndexer().commit() を呼び出す |
| ポート競合エラー | 別サービスが basePort を使用中 | 別の basePort を選択するか、空きポートを確認 |
| サポート外のファイル形式 | ライブラリにパーサが無い | ファイル拡張子がサポート対象か確認するか、カスタムエクストラクタを追加 |
トラブルシューティングのヒント
- ノードのヘルスを確認: 組み込みのヘルスチェックエンドポイント (
http://localhost:{port}/health) を使用して各ノードが稼働中か確認。 - メモリ使用量を監視: 大量バッチ処理はメモリ使用量を急増させる可能性があるため、少量ずつインデックス化し、定期的に
commit()を呼び出すことを検討。 - ログをチェック: GroupDocs.Search は
basePathフォルダーに詳細ログを書き込むので、パースエラーやネットワークタイムアウトがないか確認。
FAQ
Q: GroupDocs.Search をクラウドベースの Java アプリケーションで使用できますか?
A: はい。任意の Java ランタイムで動作し、basePath をネットワーク共有フォルダーやローカルにマウントしたクラウドストレージに設定できます。
Q: ファイルが変更されたときにインデックスを更新するには?
A: ノードイベントにサブスクライブ(機能 3 を参照)し、変更されたパスに対して addFiles または addDirectories を再度呼び出します。
Q: デプロイできるノード数に上限はありますか?
A: 実質的な上限はハードウェアとネットワーク帯域幅で決まります。API 自体にハードな上限はありません。
Q: 新しいファイルを追加した後にノードを再起動する必要がありますか?
A: いいえ。ファイル追加で自動的にインデックスが走ります。操作を遅延させた場合は commit() だけ実行すれば完了です。
Q: 標準でサポートされているドキュメント形式は何ですか?
A: PDF、DOC/DOCX、XLS/XLSX、PPT/PPTX、TXT、HTML、各種画像形式など。完全な一覧は公式ドキュメントをご参照ください。
Q: アップロードが継続的に行われるフォルダーに対して real time indexing java を有効にするには?
A: java.nio.file.WatchService などのファイルシステムウォッチャーを実装し、新規ファイル検知時に DirectoryAdder.addDirectories(node, path) を呼び出します。
最終更新日: 2026-02-27
テスト環境: GroupDocs.Search for Java 25.4
作者: GroupDocs