Java full text search:使用 GroupDocs.Search 建立索引
快速解答
- 什麼是 “java full text search”? 這是建立索引的過程,讓 Java 應用程式能在大量檔案中快速執行文字查詢。
- 哪個函式庫可即時使用? GroupDocs.Search for Java 提供即用的索引、字典管理與查詢執行功能。
- 需要授權嗎? 免費試用版適合評估;正式上線時需購買完整授權。
- 可以自訂字元處理方式嗎? 當然可以——使用 alphabet dictionary 來定義自訂字元類型。
- Maven 必須嗎? Maven 讓相依管理更簡便,但也可以直接下載 JAR 檔。
什麼是 java full text search 以及為何要管理 alphabet dictionary?
java full text search 索引會儲存文件的分詞表示,讓您能即時查找單字或片語。alphabet dictionary 告訴引擎如何處理每個字元(字母、數字、符號),直接影響分詞與搜尋相關性,尤其在特殊符號或語言特定規則時更為關鍵。
為什麼選擇 GroupDocs.Search 來實作 java full text search?
GroupDocs.Search 能在不將文件全部載入記憶體的情況下處理高達 10,000 份文件,提供次秒級的查詢回應。它允許完整掌控字元類型,支援 50+ 輸入與輸出格式,且可橫向擴展至多台伺服器,是企業級搜尋的最佳選擇。
前置條件
- GroupDocs.Search for Java(最新發行版)。
- 已在開發機上安裝 Java 17 或更新版本。
- Maven 3.6+(或能手動加入 JAR)。
必要的函式庫、版本與相依性
- GroupDocs.Search for Java – 最新穩定版。
- 基本索引功能不需額外第三方函式庫。
環境設定需求
請確保您的環境支援 Maven。如尚未安裝 Maven,請從官方網站下載:Apache Maven。
知識前置條件
熟悉 Java 語法與檔案 I/O 會有幫助,但以下步驟說明會涵蓋所有必需內容。
設定 GroupDocs.Search for Java
Maven 設定
將儲存庫與相依性加入 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>
直接下載
若不想使用 Maven,可從官方發行頁面取得最新 JAR 檔:GroupDocs.Search for Java releases。
取得授權的步驟
- 免費試用 – 先使用試用版探索全部功能。
- 暫時授權 – 申請臨時金鑰以延長測試時間。
- 完整授權 – 購買正式授權以獲得無限制使用權。
基本初始化與設定
建立指向索引資料夾的 Index 實例:
import com.groupdocs.search.*;
public class SearchIndexSetup {
public static void main(String[] args) {
String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\Index";
Index index = new Index(indexFolder);
}
}
實作指南
以下示範建置 java full text search 解決方案時最常用的操作流程。
建立或開啟索引
Index 類別是代表磁碟上可搜尋集合的核心物件。
import com.groupdocs.search.*;
String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\Index";
Index index = new Index(indexFolder);
- 參數:
indexFolder– 索引檔案所在的路徑。 - 目的: 為後續的索引與查詢建立搜尋環境。
匯出 alphabet dictionary 至檔案
AlphabetDictionary 物件保存字元類型對應。匯出後可供日後重用或分析設定。
import com.groupdocs.search.dictionaries.*;
String fileName = "YOUR_OUTPUT_DIRECTORY\\Alphabet.dat";
index.getDictionaries().getAlphabet().exportDictionary(fileName);
- 參數:
fileName– 匯出字典的目標檔案。
清除 alphabet dictionary
在套用自訂規則前,先將字典重設為預設狀態:
import com.groupdocs.search.dictionaries.*;
if (index.getDictionaries().getAlphabet().getCount() > 0) {
index.getDictionaries().getAlphabet().clear();
}
- 目的: 移除先前定義的所有字元類型,確保從乾淨的基礎開始。
從檔案匯入 alphabet dictionary
還原先前儲存的字典設定:
import com.groupdocs.search.dictionaries.*;
index.getDictionaries().getAlphabet().importDictionary(fileName);
- 參數:
fileName– 包含字典的.dat檔案路徑。
在 alphabet dictionary 中設定字元類型
CharacterType 列舉定義分詞時字元的解讀方式。自訂特定字元的處理方式,例如將連字號視為單詞的一部份,而非分隔符。
import com.groupdocs.search.dictionaries.*;
if (index.getDictionaries().getAlphabet().getCharacterType('-') != CharacterType.Blended) {
index.getDictionaries().getAlphabet().setRange(new char[] { '-' }, CharacterType.Blended);
}
- 參數: 目標字元(
'-')與新的CharacterType。 - 為何重要: 調整字元類型可提升對連字號詞彙、ID 或自訂符號的搜尋相關性。
從資料夾索引文件
一次性將目錄中的所有檔案加入搜尋索引:
import com.groupdocs.search.*;
String documentsFolder = "YOUR_DOCUMENT_DIRECTORY";
index.add(documentsFolder);
- 參數:
documentsFolder– 包含欲索引文件的資料夾路徑。
在索引中搜尋
SearchResult 類別包含查詢回傳的匹配文件與摘要。執行查詢並取得結果:
import com.groupdocs.search.results.*;
String query = "Elliot-Murray-Kynynmound";
SearchResult result = index.search(query);
- 參數:
query– 您要搜尋的文字。 - 結果: 包含匹配文件與摘要的
SearchResult物件。
java full text search 的常見使用情境
- 內容管理系統 (CMS): 加速文章與資產的檢索。
- 法律文件庫: 即時定位條款或案例參考。
- 研究圖書館: 為上千篇論文建立關鍵字即時搜尋。
- 電商目錄: 透過自訂分詞提升商品搜尋體驗。
- 客服門戶: 讓客服人員快速找到相關工單或知識庫文章。
效能考量
- 增量更新: 只重新索引新增或變更的檔案,避免全量重建。
- 查詢最佳化: 盡量簡潔查詢,避免過寬的萬用字元搜尋。
- 資源監控: 大批次索引時留意記憶體使用,必要時調整 JVM 堆大小。
- 字典大小: 只有在修改字典時才匯出/匯入,過多 I/O 會拖慢啟動速度。
常見問題
Q: 使用 GroupDocs.Search 的前置條件是什麼?
A: 安裝 Java 17+、Maven 3.6+(或下載 JAR),並加入 GroupDocs.Search 相依性。
Q: 如何取得正式環境的授權?
A: 先使用免費試用,申請暫時金鑰以延長測試,最後於 GroupDocs 入口網站購買完整授權。
Q: 我可以自訂 alphabet dictionary 中的字元類型嗎?
A: 可以——使用 setRange 或 set 方法為任意字元或範圍指派自訂的 CharacterType。
Q: 能否匯出與匯入 alphabet dictionary?
A: 完全可以——使用 exportDictionary 與 importDictionary 方法保存或共享字典設定。
Q: 此指南測試的是哪個版本?
A: 範例已於 GroupDocs.Search for Java 版本 25.4 進行驗證。
最後更新: 2026-09-06
測試版本: GroupDocs.Search for Java 25.4
作者: GroupDocs