GroupDocs.Search を使用した Java のハイライト検索結果

手作業で無数のドキュメントを探し回るのに疲れた方には、highlight search results java が必要な情報を迅速かつ確実に抽出する方法を提供します。このチュートリアルでは、分散検索ネットワークの構成、ファイルのインデックス作成、クエリの実行、そして最終的にドキュメント内で一致箇所をハイライトする手順を解説します。最後まで読むと、複数ノードにスケールでき、関連用語を即座に目立たせる本番環境対応のソリューションが手に入ります。

クイック回答

  • “highlight search results java” とは何ですか? Java ライブラリ(例: GroupDocs.Search)を使用して、ドキュメント内で見つかったキーワードをプログラムでマークすることを指します。
  • 同じドキュメントで複数の用語をハイライトできますか? はい。HighlightOptions を使用して、各一致の前後に表示する用語数を定義できます。
  • この例を実行するのにライセンスは必要ですか? テストには無料トライアルまたは一時ライセンスで動作しますが、本番環境では正式なライセンスが必要です。
  • 必要な Java バージョンは? Java 8 以降です。
  • 大規模なドキュメントコレクションに適していますか? はい。検索ネットワークはインデックス作成とクエリ負荷をノード間で分散します。

Highlight Search Results Java とは?

Highlight search results java は、検索クエリを受け取り、ドキュメント内の一致フラグメントを特定し、それらのフラグメントを視覚的に強調表示(例: マーカーで囲む、ハイライトされたスニペットとして返す)するプロセスです。これにより、エンドユーザーはファイル全体を開かずに各一致のコンテキストを簡単に確認できます。

ハイライトに GroupDocs.Search を使用する理由

GroupDocs.Search は、数十種類のファイル形式、分散インデックス作成、組み込みのフラグメントハイライターをサポートする、すぐに使える高性能エンジンを提供します。カスタムパーサーの作成や低レベルの検索インフラ管理が不要になるため、スムーズなユーザー体験の提供に集中できます。

前提条件

  • Java Development Kit (JDK) 8+java -version が 1.8 以上を示すことを確認してください。
  • Maven – 依存関係管理に使用します。
  • GroupDocs.Search for Java 25.4 – 本ガイド全体で使用するバージョンです。
  • IntelliJ IDEAEclipse などの IDE(任意ですが推奨)。
  • Java とネットワーク概念の基本的な知識。

GroupDocs.Search for Java のセットアップ

ライブラリは Maven で追加するか、JAR を直接ダウンロードしてプロジェクトに組み込むことができます。

Maven 設定

Add the repository and dependency to your 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 からダウンロードしてください。

ライセンス取得手順

  • Free Trial: コア機能を試すためにトライアルから開始します。
  • Temporary License: このページ から拡張テストライセンスを取得します。
  • Purchase: 本番環境での導入のために正式ライセンスを取得します。

基本的な初期化と設定

Create an Index instance that points to a folder where the search index will be stored:

import com.groupdocs.search.*;

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

実装ガイド

分散ネットワークで Highlight Search Results Java を実装する方法

検索ネットワークの構成

First, define where your documents live and which port the network will use.

import com.groupdocs.search.common.*;
import com.groupdocs.search.scaling.configuring.*;

String basePath = "YOUR_DOCUMENT_DIRECTORY/AdvancedUsage/Scaling/HighlightingResultsInNetwork/";
int basePort = 49116; // Change if port is busy

Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
  • basePath – インデックス対象ファイルが格納されたルートフォルダー。
  • basePort – ノード間通信に使用する TCP ポート。使用されていないものを選んでください。

検索ネットワークノードのデプロイ

Deploy one or more nodes based on the configuration. The first node becomes the master.

import com.groupdocs.search.scaling.*;

SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);
SearchNetworkNode masterNode = nodes[0];
  • nodes – 実行中のすべてのノードを格納する配列。
  • masterNode – インデックス作成とクエリ配布を調整します。

検索ネットワークノードイベントへのサブスクライブ

Attach listeners to the master node to receive real‑time notifications (e.g., when indexing completes).

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

SearchNetworkNodeEvents.subscribe(masterNode);

ネットワークノードでディレクトリをインデックス化

Point the node to the folder(s) you want to index. The helper class Utils.DocumentsPath resolves to the sample data folder.

import com.groupdocs.search.examples.Utils;
import com.groupdocs.search.options.*;

IndexingDocuments.addDirectories(masterNode, Utils.DocumentsPath);

ネットワークノード全体でテキスト検索

Run a query against all nodes and retrieve the matching documents.

import java.util.ArrayList;
import com.groupdocs.search.scaling.results.*;

ArrayList<NetworkFoundDocument> documents = TextSearchInNetwork.searchAll(masterNode, "ipsum", false);
highlightInDocument(masterNode, documents.get(0), 3); // Highlight results from the first found document.
  • "ipsum" を検索したい任意の語句に置き換えてください。
  • 次に示す highlightInDocument メソッドがハイライトを適用します。

複数用語のハイライト – 検索結果のハイライト

The following method demonstrates how to highlight fragments around each match. It also shows how to control the number of surrounding terms, satisfying the secondary keyword highlight multiple terms document.

import com.groupdocs.search.highlighters.*;
import com.groupdocs.search.options.*;

public static void highlightInDocument(
    SearchNetworkNode node,
    NetworkFoundDocument document,
    int maxFragments) {
    
    Searcher searcher = node.getSearcher();
    FragmentHighlighter highlighter = new FragmentHighlighter(OutputFormat.PlainText);

    HighlightOptions options = new HighlightOptions();
    options.setTermsAfter(5);
    options.setTermsBefore(5);
    options.setTermsTotal(15);

    searcher.highlight(document, highlighter, options); // Perform highlighting on the document.

    FragmentContainer[] result = highlighter.getResult();
    for (FragmentContainer container : result) {
        if (container.getCount() == 0) continue;

        String[] fragments = container.getFragments();
        int count = Math.min(fragments.length, maxFragments);
        for (int j = 0; j < count; j++) {
            // Print each fragment within the specified limit.
        }
    }
}
  • OutputFormat.PlainText – プレーンテキストのスニペットを返します。リッチな UI が必要な場合は HTML に切り替え可能です。
  • HighlightOptions – 各一致の前後に含める単語数を制御します(setTermsBefore, setTermsAfter)。
  • maxFragments – ドキュメントあたりに表示するスニペット数の上限を設定します。

ネットワークノードの終了

When you’re done, shut down every node to free resources.

for (SearchNetworkNode node : nodes) {
    node.close();
}

実用的な活用例

  • Enterprise Document Management: 企業のファイルを一元化し、従業員が関連する契約書やポリシーを即座に検索できるようにします。
  • Legal Case Files: 重要な法的用語をハイライトして、判例文書を迅速に抽出します。
  • R&D Knowledge Bases: 研究者が特許や技術文献を検索し、ハイライトされた抜粋を確認できます。
  • E‑commerce Catalogs: ショッピング客がキーワードで商品を検索し、説明文中のハイライトされた一致を表示できます。
  • Library Systems: 利用者が数千冊の書籍を検索し、各ファイルを開かずにハイライトされた抜粋を閲覧できます。

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

  • インデックスを最新に保つ: 変更されたファイルを毎晩再インデックス化するか、インクリメンタル更新を使用します。
  • 複数ノードを活用: インデックス作成とクエリ負荷を分散し、ボトルネックを回避します。
  • HighlightOptions の調整: termsBefore/After を減らすことで、非常に大きなドキュメントのメモリ使用量を削減できます。

よくある問題とトラブルシューティング

症状想定原因対策
結果が返されないインデックスが作成されていない、またはフォルダーが間違っているUtils.DocumentsPath を確認し、IndexingDocuments.addDirectories を再実行してください
ハイライト出力が空HighlightOptions の制限が低すぎる、またはドキュメントのエンコーディングの問題termsTotal を増やすか、ドキュメントのエンコーディングがサポートされていることを確認してください
ポート競合エラーbasePort が既に使用中別のポート番号(例: 49117)を選択してください
ライセンス例外ライセンスファイルが欠如または期限切れ有効な GroupDocs.Search.lic ファイルをアプリケーションのルートに配置してください

よくある質問

Q: 複数の検索ネットワークノードをデプロイしてロードバランシングできますか?
A: はい。複数のノードをデプロイすることでインデックス作成とクエリ処理が分散され、スケーラビリティと応答時間が向上します。

Q: 同じドキュメントで複数の検索語句をハイライトするには?
A: highlight メソッドに語句のリストを渡し、HighlightOptions を設定して各一致の前後語を表示させます。

Q: リアルタイム検索イベントにサブスクライブできますか?
A: もちろんです。SearchNetworkNodeEvents.subscribe(masterNode) を使用して、インデックス作成の進捗、クエリ実行、エラーのコールバックを受け取れます。

Q: GroupDocs.Search がインデックス作成とハイライトに対応しているファイル形式は?
A: DOCX、PDF、HTML、TXT、PPTX など、50 以上の形式に対応しています。

Q: 非常に大規模なコレクションで検索速度を向上させるには?
A: 定期的にインデックスを更新し、ノード間で分散させ、HighlightOptions を調整してフラグメントサイズを制限します。

結論

このガイドに従うことで、highlight search results java を使用した GroupDocs.Search の完全な本番対応セットアップが手に入ります。ネットワーク全体にスケールさせ、サポートされている任意のドキュメントタイプをインデックス化し、高速クエリを実行し、ユーザーが必要な情報を正確に見つけられるハイライトスニペットを返すことができます。次のステップとして、結果を Web UI に統合したり、ファセット検索を追加したり、スキャンした PDF に OCR を組み合わせることを検討してください。


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