使用 GroupDocs.Search 建立 Java 搜尋索引 – 指南

您是否在努力有效管理龐大的文件集合?在沒有合適工具的情況下搜尋無數檔案會相當艱難。使用 GroupDocs.Search for Java 建立 search index java 能為您提供一個強大且可擴展的索引與檢索方案,將混亂的檔案庫轉變為可搜尋的知識庫。本指南將逐步說明從設定網路、部署節點到抽取特定文件內容的每個步驟,讓您快速上手。

快速解答

  • GroupDocs.Search 的主要目的為何? 它在 Java 中提供快速、可擴展的索引與全文搜尋,適用於大型文件集合。
  • 需要哪個版本的 Java? 建議使用 Java 8 或更高版本。
  • 試用時需要授權嗎? 是的——取得臨時授權以在評估期間解鎖全部功能。
  • 可以擴充搜尋網路嗎? 當然可以;您可以部署多個節點以分散索引與查詢負載。
  • 如何取得特定文件的文字內容? 在透過路徑或中繼資料定位文件後,使用 searcher.getDocumentText()

什麼是「create search index java」?

在 Java 中建立搜尋索引即是構建一個資料結構,將詞彙與片語對應到包含它們的文件。GroupDocs.Search 會自動化此過程,處理分詞、儲存與快速查找,讓您專注於業務邏輯,而不必關心底層索引細節。

為什麼要在 Java 中使用 GroupDocs.Search?

  • 效能: 優化演算法即使在數百萬檔案上也能提供近即時的搜尋結果。
  • 可擴展性: 可部署多節點搜尋網路以平衡負載。
  • 彈性: 開箱即支援數十種文件格式(PDF、DOCX、TXT 等)。
  • 易於整合: 簡單的 Maven 設定與清晰的 Java API,對開發者友好。

前置條件

在開始之前,請確保已滿足以下需求:

必要的函式庫與相依性

要在 Java 中使用 GroupDocs.Search,請於 pom.xml 中加入 Maven 相依性,並設定 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>

或者直接從 GroupDocs.Search for Java releases 下載最新版本。

環境設定需求

確保已安裝相容的 JDK(建議 Java 8 或以上),開發環境需支援 Maven 專案。

知識前提

熟悉 Java 程式設計並具備基本的 Maven 專案設定知識,將有助於順利跟隨本教學。

設定 GroupDocs.Search for Java

在 Java 專案中整合 GroupDocs.Search 需要以下幾個關鍵步驟:

  1. Maven 設定:如上所示於 pom.xml 中加入必要的倉庫與相依性。
  2. 取得授權:取得臨時授權以在無限制的情況下探索 GroupDocs.Search 的全部功能。前往 GroupDocs Temporary License 了解更多細節。

基本初始化

在 Java 應用程式中初始化 GroupDocs.Search,首先建立基本設定:

import com.groupdocs.search.*;

public class SearchSetup {
    public static void main(String[] args) {
        // Create an index
        Index index = new Index("YOUR_INDEX_DIRECTORY");
        
        // Add documents to the index
        index.add("YOUR_DOCUMENT_DIRECTORY");

        System.out.println("Indexing completed.");
    }
}

"YOUR_INDEX_DIRECTORY""YOUR_DOCUMENT_DIRECTORY" 替換為實際的目錄路徑。此簡易設定會建立索引並加入文件,為後續更複雜的操作做好準備。

實作指南

以下將實作分為三大功能:設定配置、部署搜尋網路與網路文件檢索。

功能 1:設定配置

概述

此功能示範如何以基礎路徑與埠號設定搜尋網路,為索引環境奠定基礎。

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

public class ConfigurationSetup {
    public static void main(String[] args) {
        String basePath = "YOUR_DOCUMENT_DIRECTORY"; // Set your document directory here
        int basePort = 49108; // Port number for the configuration
        
        // Configure the search network with provided path and port.
        Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
    }
}

說明ConfiguringSearchNetwork.configure 方法會使用指定的文件目錄與埠號建立環境,您可依專案需求自行調整參數。

功能 2:部署搜尋網路

概述

部署搜尋網路即是初始化能處理文件索引與檢索的節點。

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

public class SearchNetworkDeploymentFeature {
    public static void main(String[] args) {
        String basePath = "YOUR_DOCUMENT_DIRECTORY"; // Set your document directory here
        int basePort = 49108; // Port number for deployment
        
        Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
        
        // Deploy the search network using given path and port.
        SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);
    }
}

說明deploy 方法會根據先前的設定初始化節點。每個節點可獨立處理索引的一部份,從而實現可擴充性。

功能 3:網路文件檢索

概述

從符合特定文字條件的搜尋網路中取得文件。

import com.groupdocs.search.common.*;
import com.groupdocs.search.scaling.*;
import java.util.ArrayList;
import java.util.Arrays;

public class NetworkDocumentRetrievalFeature {
    public static void main(String[] args) {
        // Assuming masterNode is already initialized and contains documents.
        SearchNetworkNode masterNode = null;  // Placeholder: Initialize your search network node here
        String containsInPath = "English.txt";
        
        getDocumentText(masterNode, containsInPath);
    }

    public static void getDocumentText(SearchNetworkNode node, String containsInPath) {
        Searcher searcher = node.getSearcher();
        ArrayList<NetworkDocumentInfo> documents = new ArrayList<>();
        int[] shardIndices = node.getShardIndices();

        for (int i = 0; i < shardIndices.length; i++) {
            int shardIndex = shardIndices[i];
            NetworkDocumentInfo[] infos = searcher.getIndexedDocuments(shardIndex);
            documents.addAll(Arrays.asList(infos));

            for (NetworkDocumentInfo info : infos) {
                NetworkDocumentInfo[] items = searcher.getIndexedDocumentItems(info);
                documents.addAll(Arrays.asList(items));
            }
        }

        for (NetworkDocumentInfo document : documents) {
            if (document.getDocumentInfo().toString().contains(containsInPath)) {
                StringOutputAdapter outputAdapter = new StringOutputAdapter(OutputFormat.PlainText);
                searcher.getDocumentText(document, outputAdapter);

                System.out.println(outputAdapter.getResult());
                break;
            }
        }
    }
}

說明:此功能會遍歷分片以尋找包含指定文字的文件,searcher.getDocumentText 方法會抽取並顯示匹配的內容。

實務應用

  1. 企業文件管理 – 在大型組織中簡化文件檢索,提高工作效率。
  2. 法律文件搜尋 – 在龐大的案例檔案或法律圖書館中快速定位相關條文。
  3. 圖書館目錄系統 – 為書籍、期刊及其他媒體的目錄條目提供高效搜尋功能。

效能考量

為了最佳化 GroupDocs.Search 的實作,請留意以下要點:

  • 資源管理 – 監控記憶體使用情況,避免索引過程出現瓶頸。
  • 可擴展性 – 使用多節點分散負載,提升整體效能。
  • 索引最佳化 – 定期更新與最佳化索引,以加快搜尋回應速度。

常見問題與解決方案

問題原因解決方案
索引期間發生 Out‑of‑Memory 錯誤大檔案一次性載入啟用增量索引或增加 JVM 堆積大小 (-Xmx)。
搜尋未返回結果新增文件後未刷新索引呼叫 index.update() 或重新啟動節點以重新載入索引。
部署節點時埠號衝突其他服務佔用了相同埠號選擇未使用的 basePort 值,或調整防火牆規則。

常見問答

Q: 如何以程式方式建立 search index java?
A: 使用 Index 類別指向目錄,然後呼叫 index.add("<document_folder>"),即可在磁碟上建立可搜尋的索引。

Q: 能否在不重新建置的情況下向現有索引加入新文件?
A: 可以——只需在現有的 Index 實例上呼叫 index.add("<new_document_folder>"),函式庫會自動合併新檔案。

Q: 預設支援哪些檔案格式?
A: GroupDocs.Search 支援超過 50 種格式,包括 PDF、DOCX、TXT、PPTX 以及多種影像類型。

Q: 是否能同時在多個節點上執行搜尋?
A: 絕對可以。部署搜尋網路後,各節點會共享分片資訊,單一查詢即可分散至所有節點執行。

Q: 如何保護搜尋網路的安全性?
A: 為節點間通訊使用 TLS/SSL,並在公開搜尋 API 時強制驗證 token。

常見問答集

  1. 實作 GroupDocs.Search for Java 的關鍵前提是什麼?
    必須具備 Java 8 以上、Maven 設定、GroupDocs.Search 相依性以及有效的授權。

  2. 如何在 Java 中使用 GroupDocs.Search 設定搜尋網路?
    呼叫 ConfiguringSearchNetwork.configure(),傳入文件路徑與埠號即可完成環境設定。

  3. 可以部署多個節點以擴充搜尋網路嗎?
    可以,使用 SearchNetworkDeployment.deploy() 部署多節點,可提升可擴充性與負載分配。

  4. 搜尋網路在處理大量文件時的表現如何?
    只要適當部署節點並進行索引最佳化,即可高效處理龐大集合,提供快速檢索。

  5. 如何取得包含特定文字的文件內容?
    在網路節點內使用 searcher.getDocumentText(),即可抽取並顯示符合條件的內容。

結論

透過本教學,您已掌握如何 create search index java 專案,使用 GroupDocs.Search 建立可擴充的搜尋網路,並即時取得文件內容。將這些模式套用於您的應用程式,即可為處理海量文件庫的使用者提供快速、可靠的搜尋體驗。


最後更新: 2026-03-23
測試版本: GroupDocs.Search 25.4
作者: GroupDocs