建立可擴展的搜尋網路 – 使用 GroupDocs.Java 索引文件
在本教學中,您將學習如何將文件加入索引以及建立可擴展的搜尋網路,使用 GroupDocs.Search for Java。我們將說明如何設定搜尋網路、部署節點,以及處理事件,讓您的應用程式能在多台伺服器上有效處理大量文件集合。
快速答覆
- 「將文件加入索引」是什麼意思? 即將檔案插入可搜尋的索引,以便快速查詢。
- 哪個程式庫提供此功能? GroupDocs.Search for Java。
- 需要授權嗎? 提供臨時試用授權;正式環境需購買商業授權。
- 可以水平擴充嗎? 可以——只要部署多個 SearchNetworkNode 實例。
- 需要哪個 Java 版本? JDK 8 或以上。
什麼是將文件加入索引?
將您的來源檔案(PDF、DOCX、PPTX 等)載入 GroupDocs.Search 引擎,該引擎會抽取文字、建立詞頻表,並將資料存入索引檔。完成的索引即使在數百頁的文件集合上,也能在次秒內完成關鍵字查詢。
為什麼在網路環境中使用 GroupDocs.Search for Java?
將索引與搜尋工作分散至多個節點,降低查詢延遲,因為處理會在靠近資料來源的地方進行,且可在不中斷服務的情況下新增或移除節點。此架構讓您在多台伺服器上搜尋,同時保持效能一致。
前置條件
- 已安裝 Java Development Kit (JDK) 8+。
- Maven 用於相依管理。
- 具備基本的 Java 與 Maven 專案結構知識。
必要的函式庫、版本與相依性
在 Maven 專案中加入以下內容以使用 GroupDocs.Search for Java:
<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 下載最新版本。您也可以在 GroupDocs Search Java releases 找到發行檔。
環境設定需求
- 系統已安裝 JDK 8 或以上。
- 若使用 Maven 專案,需安裝並設定好 Maven。
知識前置條件
- 基本的 Java 程式設計概念。
- 熟悉 Maven 的相依管理方式。
設定 GroupDocs.Search for Java
- Maven 設定:在
pom.xml中加入上述的儲存庫與相依項目。 - 直接下載:亦可從 GroupDocs Search Java releases 下載函式庫。
取得授權
- 前往 GroupDocs website 取得免費試用或臨時授權。
- 若需完整功能與支援,請考慮購買商業授權。
基本初始化
在 Java 應用程式中初始化 GroupDocs.Search:
import com.groupdocs.search.*;
public class SearchSetup {
public static void main(String[] args) {
// Initialize an index
Index index = new Index("path/to/index/directory");
// Add documents to the index
index.add("path/to/documents");
System.out.println("GroupDocs.Search setup complete.");
}
}
如何在搜尋網路中將文件加入索引?
透過網路中的任一節點載入文件;框架會自動分配索引工作、平衡負載,並即時更新共享索引。每個節點處理指派的檔案、抽取文字,並將增量變更寫入中心索引,確保新加入的內容幾乎即時在所有節點可搜尋。
功能 1:設定搜尋網路
概觀
設定搜尋網路需要配置節點,以有效管理與分配搜尋任務。
步驟 1:定義基礎路徑與埠號
SearchNetworkNode 類別代表參與分散索引的單一節點。
String basePath = "YOUR_DOCUMENT_DIRECTORY/AdvancedUsage/Scaling/SearchNetworkNodeEvents/";
int basePort = 49140; // Change if necessary due to busy port issues
步驟 2:設定網路
NetworkConfiguration 保存共同設定(基礎路徑、埠號、複製因子),每個節點在啟動時都會讀取。
import com.groupdocs.search.scaling.*;
import com.groupdocs.search.scaling.configuring.*;
Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
功能 2:部署搜尋網路節點
概觀
部署節點以在您的網路中分散與處理搜尋操作。
步驟 1:使用設定檔部署節點
SearchNetworkNode 實例使用相同的設定檔啟動,讓它們透過定義的基礎埠範圍相互發現。
import com.groupdocs.search.scaling.*;
SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);
功能 3:訂閱節點事件
概觀
訂閱節點事件可讓您監控並回應搜尋網路內的各種動作。
步驟 1:定義訂閱方法
NodeEventListener 為您實作的介面,用於接收索引進度、錯誤與節點健康變化的回呼。
import com.groupdocs.search.events.*;
import com.groupdocs.search.scaling.events.*;
public static void subscribe(SearchNetworkNode node) {
// Subscribe to IndexingCompleted event
node.getEvents().IndexingCompleted.add(new EventHandler() {
@Override
public void invoke(Object s, EventArgs e) {
System.out.println("Indexing completed.");
}
});
// Additional events can be subscribed similarly...
}
步驟 2:使用訂閱方法
將您的監聽器註冊至每個節點,以在大量批次操作期間取得即時回饋。
SearchNetworkNode masterNode = nodes[0];
subscribe(masterNode);
關閉節點
務必優雅地關閉節點,以沖刷待寫入資料並釋放網路 socket。
for (SearchNetworkNode node : nodes) {
node.close();
}
實務應用
- 企業搜尋解決方案 – 建置搜尋網路以在多台伺服器上處理大規模文件搜尋。
- 電子商務平台 – 透過多節點分散索引任務,提升商品搜尋能力。
- 內容管理系統 (CMS) – 改善 CMS 環境中的內容檢索與更新效能。
效能考量
- 依系統資源調整節點部署方式。
- 定期監控記憶體使用,以防止洩漏,特別是在處理大型資料集時。
- 利用設定項目微調索引與搜尋操作,提升效率。
常見問題與解決方案
| 問題 | 常見原因 | 解決方式 |
|---|---|---|
| 埠號衝突 | basePort 已被使用 | 將 basePort 改為可用的號碼 |
| 節點無法連線 | 防火牆或網路規則 | 開啟所需埠號並確認連線 |
| 索引未更新 | 文件路徑錯誤 | 確認 basePath 指向正確目錄 |
| 記憶體使用過高 | 大批次索引 | 將文件分成較小批次索引或增加堆積大小 |
常見問答
Q: 部署節點時如何處理埠號衝突?
A: 將設定程式碼中的 basePort 變數改為未被佔用的埠號。
Q: GroupDocs.Search 能支援即時索引嗎?
A: 能,透過適當的設定即可支援即時索引。
Q: 部署節點時常見的問題有哪些?
A: 網路連線與路徑設定錯誤最為常見。請確保所有路徑與埠號正確配置。
Q: 網路運行中可以再加入文件到索引嗎?
A: 完全可以。只要在任一節點呼叫 index.add(...),網路會自動分配新的工作負載。
Q: 開發測試需要授權嗎?
A: 測試階段使用臨時試用授權即可;正式上線需購買商業授權。
資源
- 文件說明: GroupDocs Search Java Docs
- API 參考: GroupDocs API Reference
- 下載: Latest Release
- GitHub: GroupDocs.Search GitHub Repository
- 免費支援: GroupDocs Forum
- 臨時授權: Obtain a Temporary License
依照本指南,您即可有效將文件加入索引,並使用 GroupDocs.Search for Java 建立可擴展的搜尋網路。祝開發順利!
最後更新: 2026-05-22
測試版本: GroupDocs.Search 25.4 for Java
作者: GroupDocs