掌握使用 GroupDocs 在 .NET 中的文档编辑和搜索索引管理

介绍

如果您需要 how to redact documents 并且仍然保持文档可搜索,您已经来到正确的地方。本教程将指导您如何结合 GroupDocs.Redaction 和 GroupDocs.Search 安全地隐藏敏感数据,然后 add documents to index 以实现快速检索。完成后,您将了解如何 optimize search performance、在 C# 中编辑 PDF 文件,以及构建一个能够随数据规模扩展的强大索引管道。

快速答案

  • How do I redact a PDF in C#? 使用 RedactionEngine 加载文件,定义编辑区域,然后调用 Save。
  • What class creates a search index? GroupDocs.Search 中的 Index 类负责所有索引操作。
  • Can I add new files without rebuilding the whole index? 可以——调用 Index.AddDocument 进行增量更新。
  • Does redaction affect search results? 已编辑的内容会从索引中排除,保持搜索结果的纯净。
  • Which .NET versions are supported? .NET Framework 4.6.1+、.NET Core 3.1+ 以及 .NET 5/6。

什么是 “how to redact documents”?

“How to redact documents” 指的是以编程方式从文件中删除或遮蔽机密信息的过程,使隐藏的数据无法被恢复或显示。编辑对于合规、隐私和法律工作流至关重要,必须防止数据泄露。

为什么在编辑和搜索中使用 GroupDocs?

GroupDocs 支持 50+ 文件格式(包括 PDF、DOCX、PPTX 以及各种图像),并且能够在不将整个文件加载到内存的情况下处理数百页文档,实现 比通用库快约 30 % 的索引速度。编辑 + 搜索套件让您能够 redact PDF C# 文件并立即对清洁版本进行索引,省去单独的预处理步骤。

先决条件

  • GroupDocs.Search for .NET (v20.11 或更高)
  • GroupDocs.Redaction for .NET (v20.10 或更高)
  • Visual Studio 2017 或更高版本
  • .NET Framework 4.6.1 或更高 (或 .NET Core 3.1+)

知识先决条件

您应熟悉基本的 C# 语法、项目引用以及文件系统操作。

为 .NET 设置 GroupDocs.Redaction

安装库

.NET CLI
dotnet add package 是用于向项目中安装 NuGet 包的 .NET CLI 命令。

dotnet add package GroupDocs.Redaction

Package Manager
Install-Package 是 NuGet 包管理器控制台中使用的 PowerShell 命令,用于添加库。

Install-Package GroupDocs.Redaction

NuGet 包管理器 UI
搜索 “GroupDocs.Redaction” 并点击 Install 以获取最新的稳定版。

许可证获取

  • Free Trial – 完整功能的 30 天试用。
  • Temporary License – 15 天的延长评估访问。
  • Purchase – 永久生产许可证。

基本初始化

RedactionEngine 是用于在编辑后加载、修改并保存文档的核心类。

using GroupDocs.Redaction;

RedactorSettings settings = new RedactorSettings();
// Further configuration and initialization...

实现指南

让我们将解决方案拆分为三个逻辑部分:创建索引、添加文档(包括已编辑的文档)以及搜索索引。

如何使用 GroupDocs.Search 创建搜索索引?

Index 是 GroupDocs.Search 中表示可搜索索引的主要类。您通过指向磁盘上的文件夹来加载或创建 Index 实例;库随后会为您管理所有内部文件。此步骤是 optimizing search performance 的基础,因为结构良好的索引可以降低查询延迟。

using GroupDocs.Search;

string indexFolder = "YOUR_DOCUMENT_DIRECTORY/HelloWorldIndex";

Explanation: 代码定义了用于存放索引文件的目录。使用专用文件夹可以将索引数据与源文档隔离。

Index index = new Index(indexFolder);

Explanation: 实例化 Index 时,如果路径已有内容则打开现有索引,否则创建新索引。

如何在编辑后将文档添加到索引?

首先编辑任何机密部分,然后将清洁文件导入索引。此两步流程确保只有安全内容可被搜索。

定义源文件夹

documentsFolder 是原始 PDF 所在的路径。

string documentsFolder = "YOUR_DOCUMENT_DIRECTORY/HelloWorldDocuments";

AddDocument 是 Index 类的一个方法,用于向索引中添加单个文档。

index.Add(documentsFolder);

如何在已创建的索引中搜索?

指定查询字符串,执行搜索并遍历结果。API 返回页码、摘要和文档标识符,便于在 UI 中展示结果。

SearchResult 保存查询返回的结果,包括匹配的文档和摘要。

string query = "Lorem";
SearchResult result = index.Search(query);

实际应用

这些功能可解决以下真实场景:

  1. Legal Document Management – 在索引案件文件前编辑客户姓名,确保隐私的同时律师仍可搜索案例法。
  2. Healthcare Records – 从医疗 PDF 中剥离患者标识符,然后对已清理的版本进行快速审计查询。
  3. Corporate Compliance – 自动编辑财务报表,并立即使清洁版本可供内部调查搜索。

性能考虑

在处理大批量数据时 optimizing search performance 的方法:

  • 将索引工作设为后台任务,并批量提交更改。
  • 及时释放 Index 对象以释放非托管资源。
  • 监控内存使用;GroupDocs.Search 采用流式处理,永不将整个文档加载到 RAM。
  • 定期进行索引合并,以保持索引紧凑并提升查询速度。

常见问题和解决方案

问题解决方案
Out‑of‑memory errors on huge PDFs使用启用流模式的 RedactionEngine 与 RedactionOptions。
Search returns redacted terms确保在调用 Index.AddDocument 之前先执行编辑。
Unsupported file format验证文件扩展名是否在 50+ 支持的格式之列;如不支持,请先转换为 PDF。
License not recognized将许可证文件放置在应用根目录,并在任何 API 使用前调用 License.SetLicense("license.json")。

常见问答

Q: Can I redact PDF C# files directly without converting them first?
A: 可以——RedactionEngine 原生支持 PDF 流,您可以直接加载 PDF、应用编辑对象并保存结果,无需任何格式转换。

Q: How does adding documents to index affect search speed?
A: 增量索引仅添加新文件,保持索引大小稳定,典型工作负载下查询延迟低于 200 ms。

Q: Is it possible to schedule automatic re‑indexing?
A: 完全可以。使用 Windows Service 或 Azure Function 定时调用 Index.AddDocument,将新上传的文件导入索引。

Q: Does redaction permanently remove the hidden data?
A: 是的——编辑会覆盖原始字节,即使使用取证工具也无法恢复。

Q: What .NET versions are fully supported?
A: 完全支持 .NET Framework 4.6.1+ 与 .NET Core 3.1+(包括 .NET 5/6)。

资源


最后更新: 2026-07-02
测试环境: GroupDocs.Search 21.2 与 GroupDocs.Redaction 21.1 for .NET
作者: GroupDocs

相关教程