建立可擴展的搜尋網路 – 使用 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

  1. Maven 設定:在 pom.xml 中加入上述的儲存庫與相依項目。
  2. 直接下載:亦可從 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();
}

實務應用

  1. 企業搜尋解決方案 – 建置搜尋網路以在多台伺服器上處理大規模文件搜尋。
  2. 電子商務平台 – 透過多節點分散索引任務,提升商品搜尋能力。
  3. 內容管理系統 (CMS) – 改善 CMS 環境中的內容檢索與更新效能。

效能考量

  • 依系統資源調整節點部署方式。
  • 定期監控記憶體使用,以防止洩漏,特別是在處理大型資料集時。
  • 利用設定項目微調索引與搜尋操作,提升效率。

常見問題與解決方案

問題常見原因解決方式
埠號衝突basePort 已被使用將 basePort 改為可用的號碼
節點無法連線防火牆或網路規則開啟所需埠號並確認連線
索引未更新文件路徑錯誤確認 basePath 指向正確目錄
記憶體使用過高大批次索引將文件分成較小批次索引或增加堆積大小

常見問答

Q: 部署節點時如何處理埠號衝突?
A: 將設定程式碼中的 basePort 變數改為未被佔用的埠號。

Q: GroupDocs.Search 能支援即時索引嗎?
A: 能,透過適當的設定即可支援即時索引。

Q: 部署節點時常見的問題有哪些?
A: 網路連線與路徑設定錯誤最為常見。請確保所有路徑與埠號正確配置。

Q: 網路運行中可以再加入文件到索引嗎?
A: 完全可以。只要在任一節點呼叫 index.add(...),網路會自動分配新的工作負載。

Q: 開發測試需要授權嗎?
A: 測試階段使用臨時試用授權即可;正式上線需購買商業授權。

資源

依照本指南,您即可有效將文件加入索引,並使用 GroupDocs.Search for Java 建立可擴展的搜尋網路。祝開發順利!


最後更新: 2026-05-22
測試版本: GroupDocs.Search 25.4 for Java
作者: GroupDocs

相關教學