掌握使用 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 CLIdotnet add package 是用于向项目中安装 NuGet 包的 .NET CLI 命令。
dotnet add package GroupDocs.Redaction
Package ManagerInstall-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);
实际应用
这些功能可解决以下真实场景:
- Legal Document Management – 在索引案件文件前编辑客户姓名,确保隐私的同时律师仍可搜索案例法。
- Healthcare Records – 从医疗 PDF 中剥离患者标识符,然后对已清理的版本进行快速审计查询。
- 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