GroupDocs.Search を使用した Java のテキストハイライト
今日の高速に変化するデジタル環境では、highlight text java を大規模なファイルコレクション全体で実行できることが必須機能です。法務レビュー・プラットフォーム、学術研究エンジン、あるいはカスタマーサポートコンソールを構築する場合でも、ユーザーが探している用語を瞬時に見つけられることで、体験は格段に効率化されます。本チュートリアルでは、GroupDocs.Search for Java を使用して search documents java、index documents java を行い、全文書および特定フラグメントの両方にリッチなハイライトを適用する方法を解説します。
クイック回答
- 「検索してテキストをハイライトする」とは何ですか?
ドキュメント内でクエリ語句を検索し、背景色などで視覚的に強調表示することを指します。 - どのライブラリがこの機能を提供しますか?
GroupDocs.Search for Java。 - ライセンスは必要ですか?
評価用の無料トライアルで動作しますが、本番環境ではフルライセンスが必要です。 - ハイライト色はカスタマイズできますか?
はい、HighlightOptionsで任意の RGB 色を設定できます。 - フラグメントハイライトはサポートされていますか?
もちろんです。マッチ前後の語句数を指定して、簡潔なスニペットを作成できます。
Java でテキストをハイライトする手順
テキストハイライト Java は次の 3 つのコアステップで構成されます。
- ソースファイルをインデックス化 し、検索を高速化する。
- インデックスに対してクエリを実行 し、マッチするドキュメントを取得する。
- ハイライター API を使用して、視覚的なヒントとともに結果をレンダリングする。
以下では、まず全文書出力、次にフラグメントレベルのスニペットについて、各ステップを詳しく解説します。
検索とテキストハイライトとは?
検索とテキストハイライトは、指定されたクエリに対してドキュメントインデックスを走査し、マッチしたドキュメントを取得した後、ドキュメント出力(HTML、PDF など)内のクエリ語句の各出現箇所にマークを付けるプロセスです。この視覚的な手がかりにより、エンドユーザーは関連情報を瞬時に見つけられます。
なぜ GroupDocs.Search for Java を使うのか?
- 高性能インデックス と構成可能な圧縮(
index documents java)を提供。 - リッチなハイライト API が全文書とカスタムフラグメント(
highlight search terms java)の両方で機能。 - クロスフォーマット対応(DOCX、PDF、PPTX、TXT など)。
- シンプルな Maven 統合 とクリーンな Java‑centric 設計。
前提条件
- Java Development Kit (JDK) 8 以上。
- 依存関係管理のための Maven。
- IntelliJ IDEA または Eclipse などの IDE。
- Java 文法の基本的な知識。
GroupDocs.Search for Java のセットアップ
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>
公式サイトから最新の JAR を直接ダウンロードすることもできます: GroupDocs.Search for Java releases。
ライセンス取得
無料トライアルで開始するか、評価用に一時ライセンスを取得してください。本番環境ではフルライセンスを購入してすべての機能をアンロックします。
実装ガイド
実装は 全文書でのハイライト と フラグメントでのハイライト の 2 つの実用セクションに分かれています。両方のセクションで、GroupDocs.Search を使用した how to highlight Java ドキュメントの必須手順を示します。
インデックス設定の構成
インデックス作成前に、ストレージを高圧縮に設定します。これによりディスク使用量が削減され、検索速度が維持されます。
IndexSettings settings = new IndexSettings();
settings.setTextStorageSettings(new TextStorageSettings(Compression.High));
全文書でのハイライト
手順 1: インデックスの作成とデータ投入
インデックスフォルダーを作成し、検索対象のすべてのソースファイルを追加します。
String indexFolder = "/path/to/your/document/directory/HighlightingInEntireDocument";
Index index = new Index(indexFolder, settings);
index.add("/path/to/your/documents");
手順 2: 検索実行とハイライト適用
用語(例: ipsum)を検索し、ハイライトされたマッチを含む HTML ファイルを生成します。
SearchResult result = index.search("ipsum");
if (result.getDocumentCount() > 0) {
FoundDocument document = result.getFoundDocument(0);
OutputAdapter outputAdapter = new FileOutputAdapter(OutputFormat.Html, "/path/to/your/output/directory/Highlighted.html");
Highlighter highlighter = new DocumentHighlighter(outputAdapter);
HighlightOptions options = new HighlightOptions();
options.setHighlightColor(new Color(150, 255, 150)); // Custom green shade
options.setUseInlineStyles(false); // Prefer CSS for styling
index.highlight(document, highlighter, options);
}
主要オプションの説明
- Compression – 高圧縮にするとストレージが節約できます。
- HighlightColor – 任意の RGB 値を UI パレットに合わせて設定可能。
- UseInlineStyles –
falseにすると、CSS で全体的にスタイルを適用できるクリーンな HTML が生成されます。
フラグメントでのハイライト
手順 1: インデックスと検索(上記と同様)
String indexFolder = "/path/to/your/document/directory/HighlightingInFragments";
Index index = new Index(indexFolder, settings);
index.add("/path/to/your/documents");
SearchResult result = index.search("ipsum");
手順 2: フラグメントコンテキストとハイライトの定義
マッチ前後に表示する語句数を指定します。
HighlightOptions options = new HighlightOptions();
options.setTermsBefore(5); // Include 5 terms before the match
options.setTermsAfter(5); // Include 5 terms after the match
options.setHighlightColor(new Color(127, 200, 255)); // Custom blue shade
options.setUseInlineStyles(true); // Use inline styles for emphasis
FoundDocument document = result.getFoundDocument(0);
FragmentHighlighter highlighter = new FragmentHighlighter(OutputFormat.Html);
index.highlight(document, highlighter, options);
手順 3: ハイライトフラグメントの取得と書き出し
生成されたフラグメントを収集し、HTML ファイルに書き出します。
StringBuilder stringBuilder = new StringBuilder();
FragmentContainer[] fragmentContainers = highlighter.getResult();
for (FragmentContainer container : fragmentContainers) {
String[] fragments = container.getFragments();
if (fragments.length > 0) {
stringBuilder.append("\n<br>").append(container.getFieldName()).append("<br>\n");
for (String fragment : fragments) {
stringBuilder.append(fragment).append("\n");
}
}
}
try {
Files.write(Paths.get("/path/to/your/output/directory/Fragments.html"), stringBuilder.toString().getBytes());
} catch (IOException ex) {
// Handle exceptions
}
実用例
- 法務文書レビュー – 法令、条項、判例参照を瞬時にハイライト。
- 学術研究 – 数十の PDF や Word ファイルから重要用語を抽出。
- カスタマーサポート – チケット履歴内の注文番号やエラーコードを即座に特定。
パフォーマンス考慮点
- インデックスサイズ –
Compression.Highを使用するとディスクフットプリントが削減されます。 - フラグメントコンテキスト –
termsBefore/Afterの値が大きいほど精度は上がりますが、速度に影響する可能性があります。 - メモリ管理 – 大規模コーパスをインデックス化する際は JVM ヒープを監視し、非常に大きなセットの場合はインクリメンタルインデックスを検討してください。
よくある問題と解決策
- インデックス作成エラー – ファイルパスを確認し、アプリケーションに読み書き権限があることを確認してください。
- ハイライトが表示されない –
UseInlineStylesが出力形式(HTML vs. PDF)に合っているか確認してください。 - 色が適用されない – RGB 値が 0‑255 の範囲内であること、HTML ビューアがそのスタイルをサポートしていることを確認してください。
FAQ(よくある質問)
Q: GroupDocs.Search for Java を使用するメリットは何ですか?
A: 高速でスケーラブルなインデックス作成、カスタマイズ可能なハイライト、豊富なドキュメント形式のサポートを提供します。
Q: GroupDocs.Search を REST API と統合するには?
A: Spring Boot コントローラで検索・ハイライトメソッドを公開し、HTML または JSON ペイロードとして返します。
Q: パスワード保護されたファイルは扱えますか?
A: はい、インデックスにドキュメントを追加する際にパスワードを指定すれば処理できます。
Q: ハイライトのマークアップを色以外にカスタマイズできますか?
A: もちろんです。HighlightOptions で CSS クラスを注入したり、生成後の HTML を加工したりできます。
Q: 本ガイドで使用したバージョンは?
A: GroupDocs.Search 25.4 でコードを検証しています。
Q: ハイライトオプションをインラインスタイルではなく CSS クラスで設定するには?
A: options.setUseInlineStyles(false) とし、options.setCssClass("myHighlight") で割り当てたクラス用の CSS ルールを追加します。
Q: PDF ソースから直接 highlight terms pdf java をハイライトする方法は?
A: はい、GroupDocs.Search は PDF 入力をサポートしており、ハイライターは HTML を出力します。その HTML を PDF ビューアに埋め込むか、GroupDocs.Conversion を使って PDF に再変換できます。
最終更新日: 2026-02-27
テスト環境: GroupDocs.Search 25.4
作者: GroupDocs