在 Java 中使用 GroupDocs.Search 的全文搜尋範例

如果您需要一個能夠跨 PDF、Word 檔案、試算表等多種格式運作的 全文搜尋範例,您來對地方了。手動掃描數千份文件是巨大的瓶頸,但 GroupDocs.Search for Java 能以極快的速度自動化索引與查詢。在本教學中,我們將逐步說明從將文件加入索引、編寫 Boolean 查詢 Java 陳述式,到為生產工作負載優化搜尋效能的全部步驟。

快速解答

  • What is full text search example? 它會索引每個文件的原始文字,讓您能即時查詢任何單字或片語。
  • Which library supports multiple formats? GroupDocs.Search for Java 支援 PDF、DOCX、XLSX、PPTX、HTML、TXT 以及超過 50 種其他檔案類型。
  • How do I add documents to index? 呼叫 index.add() 方法,傳入資料夾路徑或自訂的 DocumentFilter。
  • Can I run Boolean queries? 可以——使用 AND、OR、NOT 結合詞彙以取得精確結果。
  • How do I improve performance? 使用增量索引、啟用結果快取,並在不需要時停用語音搜尋。

什麼是全文搜尋範例?

全文搜尋範例讓您掃描文件的全部文字內容,將其儲存在高效的索引中,並即時取得符合的記錄。不同於僅搜尋檔名的方式,它會深入 PDF、Word 文件、試算表及其他支援的格式,因而非常適合文件管理系統、支援入口網站,以及任何需要快速定位資訊的應用程式。

為何使用 GroupDocs.Search for Java?

GroupDocs.Search for Java 提供超過 50 種檔案類型的多格式支援,包括 PDF、DOCX、XLSX、PPTX、HTML 以及純文字。它可擴展至數百萬檔案,同時透過將索引儲存於磁碟上以降低記憶體使用量。此函式庫內建進階查詢語言,支援 Boolean、模糊與語音搜尋,且只需一個 Maven 依賴,即可在數分鐘內開始索引。

前置條件

在開始之前,請確保您已具備以下條件:

  • Java 11+(Java 8 亦可使用,但建議使用 Java 11 或更新版本以獲得更佳效能)。
  • Maven 用於相依性管理。
  • GroupDocs.Search 授權(免費試用金鑰足以用於開發)。

必要的函式庫與相依性

將以下儲存庫與相依性加入您的 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>

For detailed usage see the documentation.

環境設定

  • 安裝 JDK(8 或更新版本)並設定 JAVA_HOME。
  • 使用如 IntelliJ IDEA 或 Eclipse 等 IDE,以便更輕鬆除錯。

知識前提

  • 基本的 Java 程式設計概念。
  • 熟悉 Maven 的 pom.xml 結構。

設定 GroupDocs.Search for Java

您可以透過 Maven(如上所示)引入函式庫,或手動下載 JAR 檔案。

直接下載(若您偏好手動設定)

從 GroupDocs.Search for Java releases 取得最新套件。

取得授權步驟

  1. Free trial – 註冊並取得臨時金鑰。
  2. Temporary license – 申請較長期的金鑰以進行延伸測試。
  3. Purchase – 當您準備好投入生產時,升級為完整商業授權。

基本初始化與設定

在磁碟上建立索引資料夾,並驗證函式庫正確載入:

import com.groupdocs.search.Index;

public class SearchSetup {
    public static void main(String[] args) {
        // Initialize an index in the specified directory
        Index index = new Index("C:\\MyIndex");
        
        System.out.println("GroupDocs.Search initialized!");
    }
}

Pro tip: 將索引目錄放在快速 SSD 上,以減少查詢延遲。

將文件加入索引

Why this matters: 沒有已索引的內容就無法產生搜尋結果。以下示範如何加入整個資料夾或篩選特定檔案類型。

步驟 1:建立索引

Index 類別是可搜尋的容器,負責將已索引的文件儲存在磁碟上。

Index index = new Index("C:\\MyIndex");

步驟 2:加入文件(add documents to index)

您可以索引資料夾中的所有檔案,或使用 DocumentFilter 限制特定副檔名。

index.add("C:\\Documents\\*.*"); // Adds all documents from the specified directory
// For specific file types, use:
index.add("C:\\Reports", new DocumentFilter() {
    @Override
    public boolean accept(String fileName) {
        return fileName.endsWith(".pdf") || fileName.endsWith(".docx");
    }
});

說明:

  • Index 代表可搜尋的資料庫。
  • add() 讀入檔案;萬用字元 *.* 會抓取所有檔案,而 DocumentFilter 讓您微調 add documents to index 步驟。

執行搜尋(search documents java)

現在索引已包含資料,您可以對其執行查詢。

步驟 1:建立查詢

String query = "GroupDocs";

步驟 2:執行搜尋

SearchResult result = index.search(query);
System.out.println("Documents found: " + result.getDocumentCount());

說明:

  • search() 在索引上執行查詢。
  • getDocumentCount() 告訴您匹配的文件數量——有助於快速驗證。

進階查詢技巧(boolean query java)

若需精確控制,可使用 Boolean 邏輯結合詞彙。

Boolean 查詢

BooleanQuery 類別讓您使用 AND、OR、NOT 運算子建立複雜的表達式。

String booleanQuery = "GroupDocs AND Java";
SearchResult booleanResult = index.search(booleanQuery);

語音搜尋(可選的模糊匹配)

PhoneticSearch 功能可對拼寫錯誤的詞彙進行語音匹配,但會增加額外負擔。

index.getSettings().setPhoneticSearch(true);

何時使用: 只有在使用者常常拼寫錯誤時才啟用語音搜尋;否則,請停用以 optimize search performance。

常見問題與解決方案

問題發生原因解決方式
缺少文件檔案路徑不正確或權限不足確認路徑並授予讀取權限
查詢緩慢索引過大且未使用快取,或不必要的語音搜尋啟用快取,停用語音搜尋,並考慮將索引拆分
記憶體不足錯誤索引大小超過 JVM 堆積記憶體增加 -Xmx 設定或使用增量索引

實務應用

GroupDocs.Search 在實際情境中表現優異:

  1. Content management systems – 提供跨文章、PDF 與媒體資產的即時全文搜尋。
  2. Customer support portals – 客服人員可在數秒內找到相關手冊或政策。
  3. Enterprise document repositories – 在合約、報告與合規文件中搜尋,無需將資料移至其他資料庫。

效能考量

優化搜尋效能

  • Incremental indexing: 僅新增或更新變更的檔案,而非重新建構整個索引。
  • Caching: 將常用的查詢結果保留在記憶體中。
  • Resource monitoring: 根據索引大小調整 JVM 堆積 (-Xmx2g 或更高)。

資源使用指引

  • 將索引資料夾儲存在快速 SSD 或 NVMe 磁碟上。
  • 在大量索引期間監控 CPU 與記憶體;限制批次操作以避免峰值。

Java 記憶體管理最佳實踐

  • 使用 try‑with‑resources 處理串流。
  • 使用後將大型物件設為 null,以協助垃圾回收。

結論

您現在已擁有一個完整、可投入生產的 Java 全文搜尋範例,使用 GroupDocs.Search。從設定函式庫、將文件加入索引、編寫 boolean query java 陳述式,到 優化搜尋效能,每個步驟皆已說明。

往後步驟

透過查閱官方的 GroupDocs.Search Documentation 以探索更深入的功能,如自訂分析器、同義詞字典與雲端儲存整合。


常見問答

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

Q: 我該如何處理大型資料集?
A: 將其分割為多個索引,採用增量更新,並啟用結果快取以降低延遲。

Q: GroupDocs.Search 能在雲端環境執行嗎?
A: 可以——您可以將索引資料夾指向已掛載的雲端儲存(例如 Azure Blob、透過檔案系統驅動的 AWS S3)。

Q: 與其他函式庫相比,GroupDocs.Search 有何優勢?
A: 多格式支援、內建 Boolean/語音查詢,以及輕量的 Java API,能以低記憶體佔用處理數百萬文件。

Q: 我該如何排除效能問題?
A: 檢查索引設定,若不需要則停用語音搜尋,並在索引與查詢期間監控 JVM 記憶體/CPU 使用情況。

最後更新: 2026-08-15
測試環境: GroupDocs.Search 25.4
作者: GroupDocs

資源

相關教學