but keep label? The label is part of text. We’ll translate “Last Updated:” to “最後更新:” and keep date.
Tested With: -> “測試環境:” maybe.
Author: -> “作者:” .
Now produce final markdown.
Make sure to keep code block placeholders unchanged.
Also ensure no extra spaces messing.
Let’s craft final answer.# 使用 GroupDocs.Search 的 Java 高亮搜尋結果
如果你已厭倦手動篩選無盡的文件,highlight search results java 提供了一種快速、可靠的方式,直接找出你需要的內容。在本教學中,我們將逐步說明如何設定分散式搜尋網路、建立索引、執行查詢,最後在文件內直接高亮顯示匹配結果。完成後,你將擁有一套可在多節點上擴展的生產就緒解決方案,讓相關詞彙即時突顯。
快速回答
- 「highlight search results java」是什麼意思? highlight search results java 是指在使用 Java 函式庫(如 GroupDocs.Search)時,以程式方式標記文件中找到的關鍵字。
- 我可以在同一文件中高亮多個詞彙嗎? 可以 – 使用
HighlightOptions來定義每個匹配前後顯示的詞彙數量。 - 執行此範例需要授權嗎? 需要 – 測試時可使用免費試用或臨時授權,正式上線則需完整授權。
- 需要哪個 Java 版本? 需要 Java 8 或更新版本。
- 此方法適用於大型文件集合嗎? 絕對適用 – 搜尋網路會在多節點間分散索引與查詢負載。
什麼是 Highlight Search Results Java?
Highlight search results java 是指根據搜尋查詢,找出文件中匹配的片段,並以視覺方式強調這些片段(例如以標記包圍或返回高亮片段)。如此一來,最終使用者無需開啟整個檔案即可看到每個匹配的上下文。
為何 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 IDEA 或 Eclipse 等 IDE(非必須,但建議使用)。
- 具備 Java 與網路概念的基礎知識。
設定 GroupDocs.Search for Java
你可以透過 Maven 或直接下載 JAR 檔的方式將函式庫加入專案。
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 下載最新的 JAR。
取得授權步驟
- Free Trial: 先使用試用版以探索核心功能。
- Temporary License: 從 此頁面 取得延長測試授權。
- Purchase: 取得正式授權以供生產環境使用。
基本初始化與設定
建立指向儲存搜尋索引資料夾的 Index 實例:
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
設定搜尋網路
首先,定義文件所在位置以及網路使用的埠號。
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 埠號,請選擇未被使用的埠。
部署搜尋網路節點
根據設定部署一個或多個節點,第一個節點會成為主節點。
import com.groupdocs.search.scaling.*;
SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);
SearchNetworkNode masterNode = nodes[0];
nodes– 所有執行中節點的陣列。masterNode– 協調索引與查詢分配。
訂閱搜尋網路節點事件
將監聽器附加至主節點,以即時接收通知(例如索引完成時)。
import com.groupdocs.search.scaling.events.*;
SearchNetworkNodeEvents.subscribe(masterNode);
在網路節點中索引目錄
將節點指向欲索引的資料夾。輔助類別 Utils.DocumentsPath 會解析為範例資料夾。
import com.groupdocs.search.examples.Utils;
import com.groupdocs.search.options.*;
IndexingDocuments.addDirectories(masterNode, Utils.DocumentsPath);
在網路節點間搜尋文字
對 所有 節點執行查詢,並取得匹配的文件。
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方法會套用高亮。
Highlight Multiple Terms Document – Highlighting Search Results
以下方法示範如何在每個匹配周圍高亮片段,同時說明如何控制周圍詞彙數量,以符合次要關鍵字 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– 限制每份文件顯示的片段數量上限。
關閉網路節點
完成後,關閉所有節點以釋放資源。
for (SearchNetworkNode node : nodes) {
node.close();
}
實務應用
- Enterprise Document Management: 集中企業檔案,讓員工即時找到相關合約或政策。
- Legal Case Files: 透過高亮關鍵法律詞彙,快速找出先例文件。
- R&D Knowledge Bases: 研究人員可搜尋專利或技術文件,並看到高亮的摘錄。
- E‑commerce Catalogs: 讓購物者透過關鍵字搜尋,並在商品說明中看到高亮匹配。
- Library Systems: 讀者可在數千本書中搜尋,並在不開啟檔案的情況下查看高亮段落。
效能考量
- Keep indexes fresh: 每晚重新索引變更的檔案或使用增量更新。
- Leverage multiple nodes: 分散索引與查詢負載,以避免瓶頸。
- Tune
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: 超過 50 種格式,包括 DOCX、PDF、HTML、TXT、PPTX 等。
Q: 如何提升在極大集合上的搜尋速度?
A: 定期更新索引、在多節點間分散索引,並微調 HighlightOptions 以限制片段大小。
最後更新: 2026-03-17
測試環境: GroupDocs.Search for Java 25.4
作者: GroupDocs