在 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 取得最新套件。
取得授權步驟
- Free trial – 註冊並取得臨時金鑰。
- Temporary license – 申請較長期的金鑰以進行延伸測試。
- 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 在實際情境中表現優異:
- Content management systems – 提供跨文章、PDF 與媒體資產的即時全文搜尋。
- Customer support portals – 客服人員可在數秒內找到相關手冊或政策。
- 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
資源
- Documentation: GroupDocs.Search Documentation
- API reference: API Reference Guide
- Download: Latest Releases
- GitHub: Source Code on GitHub
- Support: Forum and Community Support
- License: Request a Temporary License