如何使用 GroupDocs 及同義詞搜尋在 .NET 中建立搜尋索引
在本指南中,您將學習 如何建立搜尋索引,使用 GroupDocs.Search,將文件加入索引,並啟用同義詞搜尋,讓使用者即使使用不同的術語也能找到相關內容。無論您是建立法律資料庫、企業知識庫或研究檔案,以下步驟都提供可在 .NET Framework 4.6.1+、.NET Core 與 .NET 5+ 上運行的生產就緒解決方案。
快速回答
- 「建立搜尋索引」是什麼意思? 它會建立一個可搜尋的文件目錄,將抽取的文字以最佳化結構儲存,以毫秒級的速度查找。
- 為什麼要使用同義詞搜尋? 它會將查詢擴展為具有相同意義的詞彙,於典型語料庫中可提升最高 30 % 的召回率。
- 主要前置條件是什麼? .NET 4.6.1+(或 .NET Core/5+)、C# 基礎知識,以及 GroupDocs.Search + GroupDocs.Redaction NuGet 套件。
- 需要授權嗎? 評估階段使用免費試用版即可;正式上線則需購買永久授權。
- 可以與遮蔽功能結合嗎? 可以——GroupDocs.Redaction 可在搜尋前或搜尋後執行,以遮蔽敏感資料。
什麼是「建立搜尋索引」?
搜尋索引 是一種資料結構,保存每份文件的抽取文字與中繼資料,使引擎能即時定位符合的檔案。GroupDocs.Search 會透過掃描來源資料夾、解析支援的格式,並將緊湊的索引檔寫入您指定的目錄來建立此索引。
為什麼要啟用同義詞搜尋?
同義詞搜尋會自動將替代詞加入使用者的查詢,例如搜尋 「improve」 時,同時返回包含 「enhance」、「upgrade」 或 「optimize」 的文件。實務上可將結果召回率提升 20‑35 %,同時保持高精確度,因為內建的同義詞字典已針對每種語言精心編輯。
前置條件
- .NET Framework 4.6.1 或更新版本(或任何 .NET Core/5+ 執行環境)。
- 基本的 C# 開發技能與 Visual Studio(Community、Professional 或 Enterprise)。
- 透過 NuGet 安裝 GroupDocs.Search 與 GroupDocs.Redaction 套件。
安裝
使用以下任一方式安裝 GroupDocs.Redaction for .NET(詳情請參閱 GroupDocs.Redaction .NET 文件):
.NET CLI:
dotnet add package GroupDocs.Redaction
Package Manager Console:
Install-Package GroupDocs.Redaction
或者,在 Visual Studio 中使用 NuGet 套件管理員 UI,搜尋「GroupDocs.Redaction」並直接安裝。API 參考請見 GroupDocs Redaction API。
授權取得
- 免費試用: 先使用試用版探索全部功能。
- 臨時授權: 前往 GroupDocs 網站 申請臨時授權,或於 GroupDocs License Management 入口管理授權。
- 正式購買: 生產環境就緒時,購買完整授權以移除所有評估限制。
如何設定 GroupDocs.Redaction for .NET
GroupDocs.Redaction 提供在搜尋前或搜尋後遮蔽敏感內容的核心功能。它會公開一個 Redactor 類別,您可使用授權與可選的設定參數來實例化。
以下程式碼示範如何建立 Redactor 實例並載入授權檔案:
// Definition anchor: the Redactor class provides methods to locate and mask text, images, or metadata.
var redactor = new GroupDocs.Redaction.Redactor();
using GroupDocs.Redaction;
// Initialize a new Redactor object with your document path
RedactorSettings settings = new RedactorSettings();
Redactor redactor = new Redactor("YOUR_DOCUMENT_PATH", settings);
Redactor 準備好後,您即可在搜尋結果取得的任何文件上呼叫 redactor.Redact(...)。
如何建立搜尋索引
建立搜尋索引的流程包括指定索引檔案儲存的資料夾,然後初始化 GroupDocs.Search 的 Index 類別。索引會保存所有從來源文件抽取的可搜尋資料。
首先,為索引建立目錄,接著實例化 Index 物件:
// Definition anchor: the Index class represents the searchable container that holds all indexed documents.
var indexPath = @"C:\MySearchIndex";
var index = new GroupDocs.Search.Index(indexPath);
string indexFolder = "YOUR_DOCUMENT_DIRECTORY/AdvancedUsage/Searching/SynonymSearch";
建立索引會將一組二進位檔寫入資料夾;每 1,000 頁的檔案通常不超過 200 KB,讓您在不耗盡磁碟空間的情況下擴展至百萬頁。
如何將文件加入索引
將文件加入索引需要指向包含來源檔案的資料夾,並指示索引將它們匯入。此過程會解析每種支援的格式,抽取文字,並將其存入索引以供快速檢索。
使用以下程式碼索引來源資料夾中的所有檔案:
// Definition anchor: DocumentSource tells the index where to read files from and which formats to accept.
var sourceFolder = @"C:\MyDocuments";
index.Add(sourceFolder);
using GroupDocs.Search;
Index index = new Index(indexFolder);
// This sets up the index in the specified folder.
GroupDocs.Search 支援 30+ 種輸入格式,包括 DOCX、PDF、PPTX、HTML 以及常見影像類型,讓您幾乎可以索引任何企業檔案庫,無需額外轉換器。
如何啟用並執行同義詞搜尋
同義詞處理透過 SearchOptions 開啟。啟用後,每次查詢都會自動擴展為包含字典中的同義詞,提升召回率而不犧牲精確度。
使用以下程式碼片段啟用同義詞搜尋:
var options = new GroupDocs.Search.SearchOptions()
{
UseSynonyms = true
};
var result = index.Search("improve", options);
string documentsFolder = "YOUR_DOCUMENT_DIRECTORY";
預設同義詞字典包含超過 5,000 個英文詞對。您也可以載入自訂的 SynonymDictionary 檔案,以支援特定產業術語。
自訂同義詞字典
若需領域專屬的同義詞,請載入自己的字典檔,並在執行查詢前將其指派給 SearchOptions。
options.SynonymDictionary = new SynonymDictionary(@"C:\mySynonyms.txt");
var result = index.Search("upgrade", options);
index.Add(documentsFolder);
// This step populates the index with content from your documents.
常見故障排除技巧
- 路徑問題: 再次確認索引與來源資料夾對執行帳號是可存取的。
- 授權限制: 未授權的建置可能會將可索引的檔案數限制為 100。
- 無結果返回: 確認已載入同義詞字典;您可以在執行時檢查
options.SynonymDictionary.Count。
實務應用
- 法律文件管理: 使用法律術語及其同義詞搜尋案例法。
- 學術研究: 在學術 PDF 與 Word 檔案中擴展文獻搜尋。
- 企業知識庫: 即使使用者以不同方式表述,也能找回內部政策。
- 內容管理系統: 為編輯者提供更豐富的標籤發現功能。
- 客服工單系統: 透過同義問題描述將工單匹配至已知問題。
效能考量
- 索引維護: 大量更新後重新索引;增量索引可將停機時間縮減至 70 % 以內。
- 資源監控: 在標準 VM(2 vCPU、8 GB RAM)上索引 10 GB 批次時,記憶體峰值約為 1.2 GB;若接近上限請調整批次大小。
- 物件釋放: 完成後立即呼叫
index.Dispose()與redactor.Dispose(),釋放原生資源。
結論
您現在已掌握 如何使用 GroupDocs 建立搜尋索引、將文件加入索引,以及啟用同義詞搜尋以提供更直觀的使用者體驗。此基礎亦可在其上層加入遮蔽、自訂排序或模糊匹配等功能,打造堅實的搜尋引擎。
後續步驟
- 嘗試
SearchOptions.FuzzySearch以捕捉拼寫錯誤。 - 探索
RankingAPI 以提升優先文件的排名。 - 加入 GroupDocs Forum 或 Free Support Forum 社群,分享技巧並提出問題。
- 查看 Latest GroupDocs Releases 以取得最新更新與功能。
常見問答
Q: 什麼是同義詞搜尋?
A: 同義詞搜尋會將使用者的查詢擴展為預先定義的替代詞,增加找到使用不同措辭的相關文件的機會。
Q: 如何更新我的 GroupDocs 授權?
A: 前往 GroupDocs License Management 入口,上傳新授權檔案,使用 License.SetLicense("path/to/license.lic") 進行設定。
Q: 可以在多語言環境中使用同義詞搜尋嗎?
A: 可以——為每個支援的語系載入對應的 SynonymDictionary 檔案,引擎會在每次查詢時套用相應的同義詞集合。
Q: 最常見的索引問題是什麼?
A: 檔案存取權限、格式不支援,以及超過試用版文件數量限制是開發者最常遇到的三大問題。
Q: 如何優化超大型索引的效能?
A: 使用增量索引、將索引儲存於 SSD,並將 IndexingOptions.MaxDegreeOfParallelism 設為與 CPU 核心數相同的值。
最後更新: 2026-09-16
測試環境: GroupDocs.Search 23.10 for .NET
作者: GroupDocs
using GroupDocs.Search.Options;
SearchOptions options = new SearchOptions();
options.UseSynonymSearch = true; // Activate synonym search.
string query = "improve";
SearchResult result = index.Search(query, options);
// This operation returns documents matching 'improve' or its synonyms.