在 .NET 中使用 GroupDocs.Search 與 GroupDocs.Redaction 進行文件搜尋與遮蔽

在現代企業環境中,search and redact 功能對於保護敏感資訊同時讓文件易於搜尋至關重要。本教學將帶領您建立一個結合 GroupDocs.Search 進行快速全文搜尋與 GroupDocs.Redaction 安全移除機密資料的 .NET 解決方案。完成後,您將了解如何設定函式庫、建立自訂文字分段器、執行高效能搜尋,以及安全地套用遮蔽。

快速解答

  • 什麼是「search and redact」? 它表示在文件中尋找文字並永久遮蔽。
  • 需要哪些函式庫? GroupDocs.Search and GroupDocs.Redaction for .NET.
  • 我可以處理多語言內容嗎? 可以——使用自訂文字分段器正確切分詞彙。
  • 如何提升搜尋速度? 一次建立索引,重複使用該索引,並啟用 optimize search performance 設定。
  • 如果索引失敗該怎麼辦? 請遵循故障排除章節中的「handle indexing errors」指引。

什麼是「search and redact」?

Search and redact 是在文件集合中定位特定詞彙,然後永久隱蔽或移除這些詞彙,以保護隱私或符合規範要求的過程。它結合了全文搜尋以找出敏感資訊,並使用遮蔽工具在保留文件原始版面配置的同時取代內容。

為何同時使用 GroupDocs.Search 與 GroupDocs.Redaction?

GroupDocs.Search 支援 50+ 檔案格式,且能在一般伺服器硬體上於一分鐘內索引 100,000+ 文件,而 GroupDocs.Redaction 可對 PDF、DOCX、PPTX 等 檔案套用遮蔽,且不會改變原始版面配置。將兩者結合即可提供單一解決方案,優化搜尋效能 並 優雅處理索引錯誤。

前置條件

  • Visual Studio 2022 或更新版本,支援 .NET 6+。
  • NuGet 套件:GroupDocs.Search 與 GroupDocs.Redaction(最新穩定版)。
  • 有效的 GroupDocs 授權(試用或購買)。

必要函式庫

  • GroupDocs.Search – 提供索引、查詢與自訂分段功能。
  • GroupDocs.Redaction – 提供文字、影像與中繼資料的遮蔽,支援所有支援的格式。

環境設定需求

確保開發機器對索引將儲存的資料夾具有寫入權限。

知識前置條件

  • 熟悉 C# 與 .NET 專案結構。
  • 基本了解文件處理概念(非必須但有助)。

如何在 .NET 中安裝 GroupDocs.Redaction?

您可以使用 .NET CLI 或 NuGet 套件管理員將 Redaction 套件加入專案。此指令會下載最新穩定版並註冊於專案檔,使 API 可立即使用。

dotnet add package GroupDocs.Redaction

如何取得 GroupDocs 授權?

GroupDocs 提供三種授權方案:供評估使用的免費試用、供延長開發測試的臨時授權,以及供正式上線的完整商業授權。試用版功能有限,臨時金鑰可延長評估期間,購買授權則解鎖全部功能並提供優先支援。

如何在應用程式中初始化 GroupDocs.Redaction?

Redaction 類別是對支援文件套用遮蔽的主要入口。它會載入檔案、準備遮蔽物件,並執行遮蔽程序,返回保留原始版面配置的修改後文件。您亦可設定遮蔽選項,例如顏色、覆蓋層與中繼資料移除,以符合特定合規需求。

using GroupDocs.Redaction;

// Initialize Redactor with the document path
Redactor redactor = new Redactor("path/to/document.pdf");

如何使用 GroupDocs.Search 建立索引?

Index 類別代表儲存在磁碟上的可搜尋儲存庫。它管理索引的建立、更新與查詢,讓您能新增文件、重建索引,並在大型集合中執行快速搜尋。索引資料夾可放於本機或網路儲存,且您可設定壓縮與加密以保護索引資料。

using GroupDocs.Search;

// Specify the index folder path
string indexFolder = @"YOUR_DOCUMENT_DIRECTORY/AdvancedUsage/Indexing/CustomTextSegmenter";

// Initialize the index
Index index = new Index(indexFolder);

什麼是自訂文字分段器,為何要使用它?

自訂文字分段器決定原始文字如何切分為可搜尋的標記。透過為特定語言或領域客製化分段規則,可提升分詞準確度,進而提升搜尋結果的召回率與相關性。這對於具有複雜詞界的語言(如日文或阿拉伯文)特別有用,因為預設分詞器可能會錯誤切分詞彙。

// Define a search query using Chinese language text
string query = "考虑"; // The word 'consider' in Chinese

如何使用自訂分段器執行全文搜尋?

SearchQuery 物件封裝使用者的查詢,並與自訂分段器合作定位匹配項目。它支援模糊匹配、片語查詢與加權,返回包含文件 ID、命中位置與相關性分數的結果集。您亦可套用檔案類型或日期範圍等過濾條件,以縮小結果範圍,達到更精確的目標。

// Execute the search on indexed data
SearchResult result = index.Search(query);

// Process results to analyze findings or display them
foreach (FoundDocument doc in result)
{
    Console.WriteLine($"Document: {doc.DocumentInfo.FilePath}");
}

找到敏感文字後,如何套用遮蔽?

Redaction API 讓您在支援的文件中取代或移除文字、影像與中繼資料。識別出敏感詞彙後,建立遮蔽物件、套用並儲存遮蔽檔案,確保機密資訊永久隱藏。遮蔽選項包括覆蓋黑框、使用自訂顏色,或在保留文件結構的同時移除整個物件。

using (Redactor redactor = new Redactor("path/to/document.pdf"))
{
    // Define the redaction settings and criteria
    TextRedaction textRedaction = new TextRedaction("Sensitive Information", new ReplacementOptions("[REDACTED]"));
    
    // Apply the redaction to the document
    RedactorChangeLog log = redactor.Apply(textRedaction);

    if (log.Status != RedactionStatus.Failed)
    {
        redactor.Save();
    }
}

常見問題與索引錯誤處理方式

  • 索引未找到: 請確認索引路徑存在且應用程式具有讀寫權限。
  • 搜尋無結果: 重新執行索引程序,並確保自訂分段器已正確註冊。
  • 某些格式的遮蔽失敗: 確認檔案類型受支援;對於 PDF,請使用最新的 Redaction 版本以處理 PDF 2.0 功能。

實務應用

  1. 法律文件管理: 在合約中搜尋「non‑disclosure」並在外部分享前自動遮蔽相關條款。
  2. 學術研究: 在手稿中定位未發表的資料,並在同行審查過程中隱藏。
  3. 商業合約: 批次處理數千份協議,遮蔽個人識別資訊,同時保留法律用語。

如何優化大型文件集合的搜尋效能?

為了最大化效能,請一次索引文件並在後續查詢中重複使用同一索引。啟用平行處理、設定快取,並調整索引設定以降低延遲、提升多核心伺服器的吞吐量。此外,設定 EnableMemoryMapping 標誌,使索引以記憶體映射方式載入,從而加速大型資料集的讀取操作。

處理大型檔案時,如何管理 .NET 記憶體?

有效的記憶體管理在處理大型文件時至關重要。將 Index 與 Redaction 物件置於 using 陳述式中,以確保即時釋放,並以串流方式處理檔案,避免一次將整個文件載入記憶體。監控效能計數器有助於及早偵測記憶體峰值,讓您調整批次大小或啟用垃圾回收調校。

常見問答

Q: 我可以在 GroupDocs.Search 中使用非文字型中繼資料嗎?
A: 可以——中繼資料欄位可與文件內容一起索引,允許類似 “author:JohnDoe” 的搜尋。

Q: GroupDocs.Redaction 支援在 Web API 中即時遮蔽嗎?
A: 支援;您可以同步呼叫 Redaction API 處理小檔案,或將較大的工作排入佇列以非同步方式處理。

Q: 如果索引損毀,我該怎麼辦?
A: 刪除損毀的索引資料夾,並使用相同的索引流程重新建置;函式庫會記錄詳細錯誤訊息,協助您找出原因。

Q: 是否可以在儲存前預覽遮蔽後的文件?
A: 當然可以——呼叫 redaction.Apply() 並加上 preview 旗標,即可產生供檢視的暫存版本。

Q: 官方支援哪些 .NET 版本?
A: GroupDocs.Search 與 GroupDocs.Redaction 支援 .NET 6、.NET 5、.NET Core 3.1 以及 .NET Framework 4.6.2 以上版本。

資源


最後更新: 2026-06-12
測試環境: GroupDocs.Search 23.11、GroupDocs.Redaction 23.11 for .NET
作者: GroupDocs

Install-Package GroupDocs.Redaction

相關教學