使用 Aspose.GroupDocs Redaction 创建 .NET 文档索引

如果没有可靠的方法来保持文件夹整洁 并且 搜索索引保持最新,管理大量文件集合很快就会变成噩梦。在本教程中,您将学习如何使用 GroupDocs.Redaction for .NET 创建文档索引 .net,涵盖目录准备、索引创建、文档重命名和索引更新。完成后,您将拥有一个可重复的工作流,能够从少量 PDF 扩展到成千上万的法律或支持文档。

快速答案

  • 我需要哪个库? GroupDocs.Redaction for .NET (latest NuGet version)。
  • 支持哪些 .NET 版本? .NET Framework 4.6+, .NET Core 3.1+, .NET 5/6+。
  • 可以索引多少种格式? 超过 50 种输入格式 — 包括 PDF、DOCX、XLSX、PPTX,以及常见的图像类型。
  • 我可以在不破坏索引的情况下重命名文件吗? 是的—使用内置的 Rename 方法,然后调用 NotifyIndex。
  • 生产环境是否需要许可证? 有效的 GroupDocs.Redaction 许可证是生产使用的强制要求。

什么是 “创建文档索引 .NET”?

创建文档索引 .net 指在 .NET 应用程序中构建可搜索的文件目录的过程,每个条目存储文件名、路径和内容片段等元数据。该索引实现了快速查找,无需每次扫描整个文件系统。

为什么在索引时使用 GroupDocs.Redaction?

GroupDocs.Redaction 不仅可以对敏感内容进行遮蔽,还提供高性能的索引引擎,能够在标准 8 核服务器上 每分钟处理多达 10,000 份文档,同时大多数工作负载的内存使用保持在 200 MB 以下。其 API 抽象了文件系统的怪癖,为您提供一致的目录管理方式并保持索引同步。

前提条件

  • GroupDocs.Redaction NuGet 包已安装(最新稳定版)。
  • Visual Studio 2022 或任何兼容 .NET 的 IDE。
  • 基础 C# 知识(文件 I/O、异常处理)。

必需的库、版本和依赖项

  • GroupDocs.Redaction ≥ 23.10(支持 .NET Standard 2.0 和 .NET 5+)。
  • 可选:Microsoft.Extensions.Logging 用于详细诊断。

环境设置要求

通过以下任一命令添加包(不要修改代表实际代码块的占位符):

.NET CLI

dotnet add package GroupDocs.Redaction

Package Manager

Install-Package GroupDocs.Redaction

NuGet 包管理器 UI
搜索 “GroupDocs.Redaction” 并安装最新版本。

获取许可证的步骤

  1. 免费试用 – 从 GroupDocs 门户获取 30 天试用。
  2. 临时许可证 – 请求临时密钥以进行扩展测试。
  3. 购买 – 获取生产许可证以解锁全部功能。

如何准备干净的工作目录?

加载目标文件夹,删除零散的临时文件,并复制您打算索引的源文档。此准备步骤可消除 “文件被占用” 错误,并确保索引构建器针对确定的文件集工作。通过确保干净的环境,您可以减少误报,避免权限问题,并提升整体索引性能。

清理目录

DirectoryCleaner 类会删除可能干扰索引的残留文件(例如 .tmp、.bak)。

using GroupDocs.Search.Common;
using System.IO;

string documentFolder = "YOUR_DOCUMENT_DIRECTORY/";

// Ensure the directory is empty before use
Utils.CleanDirectory(documentFolder);

复制必要的文件

FilePreparer 将源 PDF、DOCX 和图像复制到工作文件夹,保留原始文件夹层次结构。

// Copy essential documents to the target directory from a source path
Utils.CopyFiles(Utils.DocumentsPath, documentFolder);

如何创建索引?

Index 代表一个可搜索的文档集合,并管理底层存储结构。

实例化 Index 对象,将其指向您的干净目录,然后调用 Build。此操作会扫描每个文件,提取可搜索的文本,并将其存储在高效的二进制结构中。构建器还会记录文件路径和时间戳等元数据,实现快速查找和增量更新,无需重新处理未更改的文档。

创建索引

Index 类是代表可搜索文档集合的核心组件。

using GroupDocs.Search;

string indexFolder = "YOUR_DOCUMENT_DIRECTORY/Index/";
Index index = new Index(indexFolder); // Create the index

// Add documents from your directory to the index
index.Add("YOUR_DOCUMENT_DIRECTORY/Documents/");

如何重命名文档并通知索引?

DocumentRenamer 提供在保持索引完整性的同时重命名文件的实用工具。

DocumentRenamer.RenameAndNotify 在磁盘上重命名文件,然后调用 Index.UpdateEntry 以保持目录的准确性。通过在单个事务中执行重命名和即时索引通知,您可以避免陈旧引用,并确保后续搜索返回新文件名。此方法还会记录操作以供审计追踪。

using System;
using GroupDocs.Search;
using System.IO;

string oldDocumentPath = "YOUR_DOCUMENT_DIRECTORY/Documents/Lorem ipsum.txt";
string newDocumentPath = "YOUR_DOCUMENT_DIRECTORY/Documents/Lorem ipsum renamed.txt";

// Rename the file by moving it to a new path
File.Move(oldDocumentPath, newDocumentPath);

// Notify the index about this change\NSNotification notification = Notification.CreateRenameNotification(oldDocumentPath, newDocumentPath);
Index indexForNotify = new Index(indexFolder);
bool result = indexForNotify.Notify(notification); 
Console.WriteLine($"Successful rename: {result}");

更改后如何更新现有索引?

Index.Refresh 对现有索引应用增量更改,而无需完全重建。

Index.Refresh 仅处理增量(新文件或已更改文件),与完整重建相比可将 CPU 负载降低 最高 85 %。该方法扫描工作目录,识别时间戳已修改的文件,并在保留未触碰文档的同时更新其条目。这种方法显著缩短维护窗口,并保持搜索体验的响应性。

using GroupDocs.Search;

Index indexToUpdate = new Index(indexFolder);

// Updates metadata without reindexing the entire document
indexToUpdate.Update();

常见使用场景

  1. 法律文档管理 – 索引合同、简报和案件文件,实现即时检索。
  2. 数字图书馆系统 – 提供对数千本电子书和研究论文的实时搜索。
  3. 企业内容管理 – 维护符合审计要求的目录,自动反映命名约定。
  4. 客户支持档案 – 快速定位之前的工单、PDF 和知识库文章。

性能考虑因素

  • 批量更新 – 将更改分组为 ≤ 500 文件的批次,以避免过度的 I/O 峰值。
  • 内存管理 – 在每次操作后释放 Index 对象;库会自动释放本机缓冲区。
  • 并行扫描 – 启用 IndexOptions.EnableParallelProcessing 以利用多核 CPU,在 8 核机器上实现最高 3× 的加速。

常见问题

Q: GroupDocs.Redaction 的主要用途是什么?
A: 它对 PDF、DOCX 和图像中的敏感内容进行遮蔽,同时提供强大的目录和索引实用工具。

Q: 我可以同时管理多个目录吗?
A: 可以——为每个文件夹创建单独的 Index 实例,并并行操作它们。

Q: 索引期间如何处理错误?
A: 将 Index.Build 和 Index.Refresh 包裹在 try‑catch 块中;记录 RedactionException 详细信息以便排查。

Q: GroupDocs.Redaction 的系统要求是什么?
A: .NET Framework 4.6+ 或 .NET Core 3.1+ 运行时,至少 2 GB RAM,以及 500 MB 的可用磁盘空间用于临时缓冲区。

Q: 如何优化大文档集的索引性能?
A: 定期调用 Index.Refresh,启用并行处理,并限制批量大小以控制内存消耗。

其他资源


最后更新: 2026-06-22
测试环境: GroupDocs.Redaction 23.10 for .NET
作者: GroupDocs

using GroupDocs.Redaction;

// Initialize the Redactor object with your document path
var redactor = new Redactor("YOUR_DOCUMENT_PATH");

相关教程