如何在 Java 中使用 GroupDocs.Search 進行同義詞搜尋
如果您希望使用者即使輸入不同的詞彙仍能找到正確的內容,同義詞搜尋就是答案。在本指南中,我們將逐步說明您需要了解的所有內容——建立同義詞字典、匯入/匯出、管理同義詞群組,最後執行自動擴展查詢的搜尋。無論您是構建 CMS、電子商務目錄,或是法律文件庫,加入同義詞支援都能顯著提升相關性與轉換率。
快速解答
- 加入同義詞的主要步驟是什麼? 初始化一個
Index並使用SynonymDictionaryAPI。 - 我可以匯入同義詞字典嗎? 可以 — 使用
importDictionary(path)來載入預先建立的檔案。 - 如何啟用同義詞搜尋? 設定
SearchOptions.setUseSynonymSearch(true)。 - 可以管理同義詞群組嗎? 當然可以 — 您可以透過字典 API 清除、加入或取得群組。
- 優化搜尋索引時應考慮什麼? 定期修剪未使用的條目,並為大型資料集調整 JVM 堆積大小。
什麼是同義詞搜尋?
「同義詞搜尋」表示引擎將一組詞彙或片語視為可互換。當使用者輸入 “better” 時,引擎也會搜尋 “improve”、“enhance”,或您在同一同義詞群組中定義的任何其他詞彙,提供更豐富的結果而不改變使用者的查詢。
為何在 GroupDocs.Search 中啟用同義詞支援?
- 更佳的使用者體驗: 即使訪客使用不同的術語,也能找到相關文件。
- 提升轉換率: 電子商務平台透過匹配多樣的商品詞彙捕獲更多銷售。
- 簡化維護: 單一中心字典可供多個應用程式使用,使更新變得輕鬆。
前置條件
- GroupDocs.Search for Java 版本 25.4 或更新版本。
- 具備 Maven 支援的 Java IDE(IntelliJ IDEA、Eclipse 等)。
- 基本的 Java 知識與 Maven 專案結構的熟悉度。
必要的函式庫與版本
- GroupDocs.Search for Java 版本 25.4 或以上。
環境設定
- 您選擇的 IDE(IntelliJ IDEA、Eclipse 等)。
- Maven 用於相依性管理。
知識需求
- Java 的物件導向程式設計。
- 基本的檔案 I/O 操作。
設定 GroupDocs.Search for Java
安裝資訊
將儲存庫與相依性加入您的 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>
直接下載 – 您也可以從 GroupDocs.Search for Java releases 下載最新的 JAR。
取得授權
- 免費試用: 在未取得授權的情況下測試核心功能。
- 臨時授權: 在評估期間延伸試用功能。
- 購買: 生產環境使用及完整功能集所必需。
基本初始化與設定
建立 Index 實例,然後加入可搜尋的文件:
import com.groupdocs.search.*;
String indexFolder = "YOUR_DOCUMENT_DIRECTORY/AdvancedUsage/ManagingDictionaries/SynonymDictionary/Index";
String documentsFolder = "YOUR_DOCUMENT_DIRECTORY/DocumentsPath2";
// Creating an index in the specified folder
Index index = new Index(indexFolder);
// Adding documents from a specific folder to the index
index.add(documentsFolder);
如何將同義詞加入搜尋索引
建立索引是基礎。以下我們將逐步說明必要的步驟,並提供相對應的完整程式碼。
功能 1:建立與索引索引
// Create an index in the specified folder
Index index = new Index(indexFolder);
// Add documents from the given folder to the index
index.add(documentsFolder);
功能 2:取得單字的同義詞
String[] synonyms = index.getDictionaries().getSynonymDictionary().getSynonyms("make");
功能 3:取得同義詞群組
String[][] synonymGroups = index.getDictionaries().getSynonymDictionary().getSynonymGroups("make");
功能 4:管理同義詞字典條目
if (index.getDictionaries().getSynonymDictionary().getCount() > 0) {
index.getDictionaries().getSynonymDictionary().clear();
}
String[][] newSynonymGroups = new String[][]{
new String[] { "achieve", "accomplish", "attain", "reach" },
new String[] { "accept", "take", "have" },
new String[] { "improve", "better" }
};
index.getDictionaries().getSynonymDictionary().addRange(newSynonymGroups);
功能 5:將同義詞匯出至檔案
String exportFilePath = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/ManagingDictionaries/SynonymDictionary/Synonyms.dat";
index.getDictionaries().getSynonymDictionary().exportDictionary(exportFilePath);
功能 6:從檔案匯入同義詞
index.getDictionaries().getSynonymDictionary().importDictionary(exportFilePath);
功能 7:執行具同義詞支援的搜尋
String query = "better";
SearchOptions options = new SearchOptions();
options.setUseSynonymSearch(true);
SearchResult result = index.search(query, options);
如何使用同義詞搜尋
透過啟用 setUseSynonymSearch(true),引擎會自動使用您建立或匯入的同義詞字典擴展查詢。此步驟對於在不改變使用者搜尋行為的前提下提供更豐富的結果至關重要。
如何匯入同義詞字典
如果您已經有其他環境準備好的 .dat 檔案,只需呼叫 importDictionary(path)。這對於在開發、測試與正式伺服器之間同步字典非常理想。
如何管理同義詞群組
同義詞群組讓您將一組詞彙視為單一邏輯實體。加入、清除或取得群組皆透過 SynonymDictionary API 完成,如上方程式碼片段所示。
如何優化搜尋索引
- 定期修剪未使用的條目: 在大量更新前使用
clear()。 - 調整 JVM 堆積: 大型字典可能需要更多記憶體。
- 保持函式庫為最新版本: 新版釋出包含效能改進。
實務應用
- 內容管理系統(CMS): 使用者即使使用替代術語也能找到文章。
- 電子商務平台: 商品搜尋能容忍同義詞,例如 “laptop” 與 “notebook”。
- 文件庫: 法律或醫療檔案可受益於領域特定的同義詞群組。
效能考量
- 優化索引儲存: 定期重新建構索引以移除過時資料。
- 管理記憶體使用: 載入大型同義詞檔案時監控堆積消耗。
- 定期更新: 使用最新的 GroupDocs.Search 版本以取得錯誤修正與效能提升。
常見問題與解決方案
| 問題 | 可能原因 | 解決方案 |
|---|---|---|
| 未出現同義詞匹配 | setUseSynonymSearch(true) 未設定或字典未匯入 | 確認已啟用此選項且字典檔案存在。 |
| 匯入期間發生記憶體不足錯誤 | 過大的 .dat 檔案超出 JVM 堆積 | 增加 -Xmx 堆積大小或分批匯入較小檔案。 |
| 結果中出現重複條目 | 相同詞彙出現在多個同義詞群組 | 使用 clear() 後再 addRange() 合併重疊的群組。 |
常見問答
Q: 使用 GroupDocs.Search 的最低系統需求是什麼?
A: 任何具備相容 JDK(Java 8 或更新版)的現代作業系統皆可。
Q: 我應該多久刷新一次同義詞字典?
A: 每當有新術語出現時就更新——使用 clear() 後接 addRange() 進行全新刷新。
Q: 我可以在未購買授權的情況下使用 GroupDocs.Search 嗎?
A: 免費試用可用於評估,但正式部署需購買授權。
Q: 大型資料集的索引最佳實踐是什麼?
A: 將資料分成邏輯批次、監控堆積使用情況,並安排定期索引維護。
Q: 我未看到預期的同義詞匹配——應該檢查什麼?
A: 確認字典已正確匯入、setUseSynonymSearch(true) 已啟用,且詞彙已存在於同義詞群組中。
資源
- Documentation
- API Reference
- Download GroupDocs.Search for Java
- GitHub Repository
- Free Support Forum
- Temporary License Acquisition
最後更新: 2026-03-04
測試環境: GroupDocs.Search 25.4 for Java
作者: GroupDocs