GroupDocs.Search for .NET 26.10 現已推出。這是一個 主要版本:索引格式已重新設計,使索引 佔用更少的磁碟空間,需要 一半的 RAM,且開啟速度 快 2 到 4 倍。搜尋、刪除、最佳化與影像搜尋的速度提升 數倍到數百倍,搜尋不再等待索引,且索引資料受到校驗碼與原子更新的保護。
現有由 22.7–26.8 版本建立的索引會 在不重新索引的情況下 轉換為新格式。本次發行包含 22 項變更:4 項新功能、15 項改進與 3 項修正。
效能亮點
大多數提升會隨著索引大小與段落數量的增加而顯著。
| 項目 | 在 26.10 中的提升 |
|---|---|
| 已載入索引所需的 RAM | 減少 2 倍 |
| 開啟索引 | 快 2 到 4 倍 |
| 磁碟上的索引大小 | 隨著被索引資料成比例增長;索引越大,節省越多 |
| 大型索引中單字搜尋 | 快至 2 倍;罕見字 快 10 到 40 倍 |
| 大型索引中的模糊搜尋 | 快 2.5 到 5 倍 |
| 大型索引中的萬用字元搜尋 | 快 2.5 到 3 倍 |
| 分塊、正規表達式、數值範圍與模糊搜尋 | 快 7 到 150 倍 |
| 日期範圍搜尋 | 快 2 到 27 倍 |
| 刪除文件 | 快數百倍,記憶體減少 4 倍,無需額外磁碟空間 |
| 索引最佳化 | 快 4 倍,記憶體減少 4 倍 |
| 索引期間的峰值 RAM | 減少 2 倍 |
| 取得文件的儲存文字 | 快至 15 倍 |
| 影像搜尋資料 | 記憶體減少 2.9 倍,載入快 6.6 倍,儲存快 100 倍;反向影像搜尋快至 1.8 倍 |
| 索引被修改時的搜尋 | 不再被阻塞 |
| 索引可靠性 | 校驗碼與原子變更;中斷的操作會完成或回滾 |
| 搜尋執行緒 | 預設使用所有處理器核心;可隨時變更 |
此版本的新功能
| 鍵 | 摘要 | 類別 |
|---|---|---|
| SEARCHNET-3665 | 實作隨時變更搜尋執行緒數量的能力 | 功能 |
| SEARCHNET-3666 | 實作取代未配對代理字元的選項 | 功能 |
| SEARCHNET-3667 | 實作跳過僅由混合字元組成之詞彙的選項 | 功能 |
| SEARCHNET-3668 | 實作在不重新索引文件的情況下,將索引版本更新為新索引格式 | 功能 |
| SEARCHNET-3669 | 實作索引磁碟空間使用的最佳化 | 改進 |
| SEARCHNET-3670 | 實作已載入索引之 RAM 使用的最佳化 | 改進 |
| SEARCHNET-3671 | 實作索引載入速度的最佳化 | 改進 |
| SEARCHNET-3672 | 實作大型索引搜尋速度的最佳化 | 改進 |
| SEARCHNET-3673 | 實作模糊搜尋的最佳化 | 改進 |
| SEARCHNET-3674 | 實作萬用字元搜尋的最佳化 | 改進 |
| SEARCHNET-3675 | 實作刪除與更新文件的最佳化 | 改進 |
| SEARCHNET-3676 | 實作索引最佳化操作的最佳化 | 改進 |
| SEARCHNET-3677 | 允許在索引被修改時進行搜尋 | 改進 |
| SEARCHNET-3678 | 提升索引可靠性 | 改進 |
| SEARCHNET-3679 | 實作索引期間記憶體使用的最佳化 | 改進 |
| SEARCHNET-3680 | 實作取得文件文字的最佳化 | 改進 |
| SEARCHNET-3681 | 實作影像搜尋的最佳化 | 改進 |
| SEARCHNET-3682 | 實作在所有平台上相同的大小寫處理 | 改進 |
| SEARCHNET-3688 | 實作分塊搜尋的最佳化 | 改進 |
| SEARCHNET-3683 | 修正預設的搜尋執行緒數量 | 修正 |
| SEARCHNET-3684 | 防止在變更詞彙字典後產生不一致的索引 | 修正 |
| SEARCHNET-3685 | 防止合併以不同方式處理文字的索引 | 修正 |
主要功能
索引儲存與可靠性
- 索引大小現在會隨著被索引資料的比例成長,因此擁有許多段的大型索引可節省最多空間。
- 已載入的索引只需要一半的 RAM,且開啟索引的速度提升 2 到 4 倍。
- 索引資料受到校驗碼保護,且所有變更皆以原子方式套用。若操作因錯誤、斷電或程序終止而中斷,索引將保持先前的一致狀態。
搜尋
- 僅讀取包含查詢詞彙的段落,從而加速詞彙、模糊、萬用字元與分塊搜尋。
- 搜尋預設使用所有處理器核心,且可隨時透過
IndexSettings.SearchThreads變更執行緒數量。 - 搜尋與修改索引的操作(索引、更新、刪除、合併、最佳化)不再相互阻塞。每次搜尋皆使用索引的一致快照。
索引與維護
- 刪除文件不再重新寫入索引:文件會立即從搜尋中排除,並在最佳化時實際移除。
- 索引最佳化速度提升 4 倍,且使用的記憶體減少 4 倍;極大型索引會被最佳化為多個有限大小的段落。
- 索引過程的峰值 RAM 使用量約減半。
文字處理
- 大小寫在 .NET Framework 與 .NET 上的處理方式相同,搜尋結果不受平台影響。
- 未配對的代理字元會被替換為 U+FFFD 而非直接移除,且僅由混合字元組成的詞彙將不再被索引。
公開 API 變更
已在 GroupDocs.Search.IndexSettings 類別中新增兩個屬性:
Boolean ReplaceUnpairedSurrogates– 用 Unicode 替代字元 (U+FFFD) 取代未配對的 UTF-16 代理字元。預設為啟用。Boolean SkipBlendedOnlyTerms– 排除僅由混合字元組成的詞彙不予索引。預設為啟用。
這兩個設定在建立索引時即被固定。
程式碼範例
以下範例將先前版本建立的索引更新為新索引格式,且不重新索引文件。
string sourceIndexFolder = @"c:\MyOldIndex\"; // Specify path to the index of a previous version
string targetIndexFolder = @"c:\MyNewIndex\"; // Specify path to the folder for the updated index
IndexUpdater updater = new IndexUpdater(); // Creating an index updater
if (updater.CanUpdateVersion(sourceIndexFolder)) // Checking whether the index version can be updated
{
VersionUpdateResult result = updater.UpdateVersion(sourceIndexFolder, targetIndexFolder); // Updating the index version; the source index is not changed
}
升級說明
升級自先前版本時,請留意以下變更:
- 索引格式已變更。 必須使用
IndexUpdater類別將先前版本的索引轉換後才能開啟。無需原始文件,轉換後的索引會儲存至不同資料夾,且來源索引不會被修改。 - 詞彙字典在索引包含文件後即被固定。 必須在第一個文件被索引前設定字母表、分詞字典、字元替換、停用詞,以及
UseStopWords與UseCharacterReplacements設定。之後變更會拋出InvalidOperationException。 - 不相容的索引不會被合併。 若合併的索引在文字分詞方式上不同,
Index.Merge會拋出InvalidOperationException。 - 搜尋預設為多執行緒。 使用預設的
IndexSettings.SearchThreads時,搜尋會使用與處理器核心數相同的執行緒。若要限制執行緒數量,請明確設定此屬性。 - 兩個新索引設定預設為啟用。 若要保留先前行為,請在建立索引前將
ReplaceUnpairedSurrogates與SkipBlendedOnlyTerms設為false。 - 已刪除的文件會在最佳化期間實際移除。 呼叫
Index.Optimize以回收空間。 - 分塊數量已變更。 依分塊搜尋不再為每個段落返回一個分塊。請在
SearchResult.NextChunkSearchToken不為 null 時迭代分塊,而非依賴段落數量。
如何取得更新
NuGet
- NuGet – 安裝最新套件:
# Package Manager
NuGet\Install-Package GroupDocs.Search -Version 26.10.0
# .NET CLI
dotnet add package GroupDocs.Search --version 26.10.0
# Package Manager
NuGet\Install-Package GroupDocs.Search.NETFramework -Version 26.10.0
# .NET CLI
dotnet add package GroupDocs.Search.NETFramework --version 26.10.0
直接下載
- 直接下載 – 從官方發行頁面下載 .NET 的編譯組件:
https://releases.groupdocs.com/search/net/new-releases/groupdocs.search-for-.net-26.10-dlls-only/
https://releases.groupdocs.com/search/net/new-releases/groupdocs.search-for-.net-26.10/
資源
- 完整發行說明 – https://releases.groupdocs.com/search/net/release-notes/2026/groupdocs-search-for-net-26-10-release-notes/
- 文件 – https://docs.groupdocs.com/search/net/
- 程式碼範例 – https://github.com/groupdocs-search/GroupDocs.Search-for-.NET/
- 免費支援論壇 – https://forum.groupdocs.com/c/search/
- 從 AI 代理使用 – GroupDocs.Search MCP 伺服器在本機為 Claude、Cursor 與 Copilot 執行此引擎:https://docs.groupdocs.com/search/mcp/ · 您是否需要向量資料庫來詢問文件資料夾的問題?