使用 GroupDocs Search 和 Redaction 创建搜索索引 .NET – 综合指南

在当今的数字环境中,创建搜索索引 .NET 解决方案能够快速定位信息并保护敏感数据,是任何组织的首要任务。本教程将指导您配置可扩展的 GroupDocs.Search 网络、部署节点、索引文档,并使用 GroupDocs.Redaction 对 PDF 进行脱敏——全部在 .NET 环境中完成。

快速答案

  • 创建搜索索引 .NET 的第一步是什么? 定义基础路径和端口,然后部署网络节点。
  • 如何使用 GroupDocs 对 PDF 进行脱敏? 初始化 Redactor 实例,加载 PDF,并使用所需的模式调用 Redact。
  • 我可以在多台机器上运行搜索网络吗? 可以——在不同服务器上部署节点,让主节点协调索引和查询。
  • 生产环境是否需要许可证? 生产环境需要有效的 GroupDocs 许可证;可使用临时试用许可证进行评估。
  • 支持哪些 .NET 版本? 完全支持 .NET Framework 4.7.2+、.NET Core 3.1+ 以及 .NET 5/6/7。

什么是 “create search index .net”?

Creating a search index .NET 指使用 .NET 库构建可搜索的文档元数据和内容仓库,该库会提取文本、对词项进行分词,并将其存储在优化的索引结构中。这使得在分布式节点之间能够即时响应查询,支持多种文件格式,并在企业应用中实现可扩展的高性能文档检索。

为什么要将 GroupDocs Search 与 Redaction 结合使用?

GroupDocs.Search 支持 50 多种文件格式——包括 DOCX、PDF、PPTX 和 HTML,并且能够在不将整个文件加载到内存的情况下索引数百页的文档。结合 GroupDocs.Redaction,它可以在每页不足 200 ms 的时间内 对 PDF 进行脱敏,为您提供安全且高性能的文档管理流水线。

前提条件

必需的库和依赖项

要按照本教程操作,请安装以下包:

  • GroupDocs.Search(适用于 .NET)
  • GroupDocs.Redaction(适用于 .NET)

您可以使用以下任意方法安装所需库:

.NET CLI

dotnet add package GroupDocs.Search
dotnet add package GroupDocs.Redaction

Package Manager

Install-Package GroupDocs.Search
Install-Package GroupDocs.Redaction

NuGet Package Manager UI
搜索 “GroupDocs.Search” 和 “GroupDocs.Redaction”,并安装最新版本。

环境设置要求

  • .NET Framework 4.7.2 或更高(或 .NET Core 3.1+)
  • Visual Studio IDE(Community、Professional 或 Enterprise)

知识前提

  • 基础 C# 编程
  • 面向对象概念
  • 熟悉网络配置和文档管理系统

为 .NET 设置 GroupDocs.Redaction

安装信息

要在应用程序中集成脱敏功能,请首先添加 GroupDocs.Redaction 库:

.NET CLI

dotnet add package GroupDocs.Redaction

Package Manager

Install-Package GroupDocs.Redaction

NuGet Package Manager UI
搜索 “GroupDocs.Redaction” 并安装。

获取许可证

要开始使用免费试用或临时许可证,请按以下步骤操作:

获取许可证文件后,在应用程序设置中应用它:

RedactorSettings settings = new RedactorSettings("YOUR_LICENSE_PATH");

基本初始化

要初始化 GroupDocs.Redaction 以进行基本操作,请使用以下代码片段:

using GroupDocs.Redaction;
using GroupDocs.Redaction.Options;

Redactor redactor = new Redactor("path/to/your/document.pdf", new LoadOptions(), settings);

实现指南

配置设置

概述

此功能使用基础路径和端口号配置搜索网络,构成文档管理系统的基础。

定义锚点

SearchNetworkDeployment 是在网络中协调搜索节点部署的类。

步骤 1:定义基础路径和端口

string basePath = @"YOUR_DOCUMENT_DIRECTORY/AdvancedUsage/Scaling/TextSearchInNetwork/";
int basePort = 49148; // Define your network's base port

步骤 2:配置网络

使用 Configure 方法,以指定的路径和端口设置搜索网络:

using GroupDocs.Search.Scaling.Configuring;

Configuration configuration = ConfiguringSearchNetwork.Configure(basePath, basePort);

网络节点部署

概述

在已配置的搜索网络中部署节点,以实现分布式文档搜索。

定义锚点

SearchNetworkNode 表示与主节点通信的单个可搜索节点。

步骤 1:初始化部署

using GroupDocs.Search.Scaling;
List<SearchNetworkNode> deployedNodes = new List<SearchNetworkNode>();
SearchNetworkNode[] nodes = SearchNetworkDeployment.Deploy(basePath, basePort, configuration);
deployedNodes.AddRange(nodes);

主节点事件订阅

概述

在主节点上订阅事件,以有效监控和管理网络操作。

定义锚点

SearchNetworkNodeEvents 提供索引、查询执行和错误处理的回调。

步骤 1:识别主节点

选择第一个节点作为主节点:

using GroupDocs.Search.Scaling.Results;

SearchNetworkNode masterNode = nodes[0];

步骤 2:订阅事件

订阅事件使用:

SearchNetworkNodeEvents.Subscibe(masterNode);

索引文档

概述

对文档进行索引以实现高效的搜索操作。此步骤对于确保网络能够快速检索所需数据至关重要。

定义锚点

SearchIndex 是存储每个已索引文件的可搜索标记和元数据的核心对象。

步骤 1:添加目录到索引

using GroupDocs.Search.Options;

IndexingDocuments.AddDirectories(masterNode, @"YOUR_DOCUMENT_DIRECTORY/DocumentsPath");

搜索功能 – 基本用法

概述

在网络中的节点上执行基本搜索操作。

直接答案

在主节点上调用 SearchNetwork.Query("your term") 可即时检索匹配的文档。该方法返回包含文件路径和相关性分数的 SearchResult 对象集合。
SearchNetwork.Query 是在整个网络上执行搜索查询并返回匹配结果的方法。

步骤 1:定义搜索参数

string wordToSearch = "tempor";
bool useSynonymSearch = false;
bool isObjectForm = false;

List<NetworkFoundDocument> searchResults = SearchAll(masterNode, wordToSearch, useSynonymSearch, isObjectForm);

高级搜索功能

概述

使用可自定义参数的高级搜索技术,以获得更精确的结果。

直接答案

实现一个方法,构建 SearchOptions 对象,设置 UseFuzzySearch、Highlight 和 PageSize 属性,然后将其传递给 SearchNetwork.QueryAdvanced。这将产生带分页、突出显示且启用模糊匹配的结果。
SearchNetwork.QueryAdvanced 是一个使用模糊匹配和分页等高级选项运行查询的方法。

步骤 1:实现高级搜索方法

using GroupDocs.Search.Scaling.Results;
using System.Collections.Generic;

public static List<NetworkFoundDocument> SearchAll(
    SearchNetworkNode node,
    string word,
    bool useSynonymSearch,
    bool isObjectForm)
{
    // Initialize searcher and search options for the given node
    Searcher searcher = node.Searcher;
    SearchOptions options = new SearchOptions {
        IsChunkSearch = true, // Enable chunk-based search
        UseSynonymSearch = useSynonymSearch
    };

    int totalOccurrences = 0; // To count occurrences across all documents
    List<NetworkFoundDocument> documents = new List<NetworkFoundDocument>();

    NetworkSearchResult result;
    if (isObjectForm)
    {
        SearchQuery query = SearchQuery.CreateWordQuery(word);
        result = searcher.SearchFirst(query, options); // Perform initial chunk search
    }
    else
    {
        string queryText = word;
        result = searcher.SearchFirst(queryText, options); // Perform initial text-based search
    }

    AddDocsFromResult(documents, result);
    totalOccurrences += result.OccurrenceCount;

    while (result.NextChunkSearchToken != null)
    {
        result = searcher.SearchNext(result.NextChunkSearchToken);
        AddDocsFromResult(documents, result);
        totalOccurrences += result.OccurrenceCount;
    }

    return documents; // Return list of found documents
}

private static void AddDocsFromResult(List<NetworkFoundDocument> documents, NetworkSearchResult result)
{
    for (int i = 0; i < result.DocumentCount; i++)
    {
        documents.Add(result.GetFoundDocument(i)); // Collect each document from the search results
    }
}

对 PDF 文件进行脱敏

概述

在 PDF 内容存储或共享之前,通过脱敏来保护敏感信息。

直接答案

创建 Redactor 实例,加载目标 PDF,定义 RedactionPattern(例如 SSN 正则),调用 redactor.Apply(pattern),最后保存脱敏后的文档。此过程确保个人数据被永久删除。

定义锚点

Redactor 是 GroupDocs.Redaction 中处理文档并应用脱敏规则的主要类。

示例工作流(无新代码块)

  1. 使用您的许可证初始化 Redactor。
  2. 使用 redactor.Load("sample.pdf") 加载 PDF。
  3. RedactionPattern 表示指定要脱敏的文本或模式的规则。定义如 new RedactionPattern(@"\d{3}-\d{2}-\d{4}") 的模式。
  4. 执行 redactor.Apply(pattern)。
  5. 使用 redactor.Save("sample_redacted.pdf") 保存输出。

实际应用

实际使用案例

  1. 法律文档管理 – 高效搜索合同并自动脱敏客户标识。
  2. 医疗记录 – 定位患者笔记,同时确保符合 HIPAA 的 PHI 脱敏。
  3. 企业合规 – 扫描内部沟通内容以查找禁止词汇,并在归档前进行脱敏。

结论

本指南提供了一个完整的路径,帮助您 创建搜索索引 .NET 解决方案,实现可扩展、快速索引,并通过脱敏保护数据。通过配置节点、索引文档、利用高级搜索功能以及应用脱敏,开发者可以显著提升文档管理工作流,同时遵守严格的安全标准。

常见问题

问:如何在 .NET 中使用 GroupDocs 设置分布式搜索网络?
答:定义基础路径和端口,然后调用 SearchNetworkDeployment.Deploy() 在多台机器上启动主节点和工作节点。

问:我可以在 GroupDocs 中使用多个参数进行高级搜索吗?
答:可以——使用 SearchOptions 在单个查询中结合模糊匹配、通配符支持和结果高亮。

问:是否可以在主节点上监控网络活动?
答:完全可以——订阅 SearchNetworkNodeEvents(如 IndexingCompleted 和 QueryExecuted)以获取实时洞察。

问:如何使用 GroupDocs 对 PDF 文件进行脱敏?
答:初始化 Redactor,加载 PDF,定义 RedactionPattern 对象(正则或文字字符串),调用 Apply,并保存已清理的文档。

问:在网络环境中提升搜索性能的最简方法是什么?
答:在查询前完整索引文档集,分布节点以利用并行处理,并调优 SearchOptions 以实现缓存和分页。


最后更新: 2026-06-12
测试环境: GroupDocs.Search 23.9 for .NET, GroupDocs.Redaction 23.9 for .NET
作者: GroupDocs

相关教程