Создание индекса документов .NET с Aspose.GroupDocs Redaction

Управление большими коллекциями файлов может быстро превратиться в кошмар, если у вас нет надёжного способа поддерживать порядок в папках и актуальность поискового индекса. В этом руководстве вы узнаете, как создать индекс документов .net с помощью GroupDocs.Redaction для .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 обязательна для использования в продакшн.

Что такое «Create Document Index .NET»?

Create document index .net относится к процессу создания поискового каталога файлов в .NET‑приложении, где каждая запись хранит метаданные, такие как имя файла, путь и фрагменты содержимого. Этот индекс обеспечивает быстрый поиск без сканирования всей файловой системы каждый раз.

Почему использовать GroupDocs.Redaction для индексации?

GroupDocs.Redaction не только редактирует конфиденциальный контент, но и предоставляет высокопроизводительный движок индексации, способный обрабатывать до 10 000 документов в минуту на стандартном 8‑ядерном сервере, при этом удерживая использование памяти ниже 200 МБ для большинства нагрузок. Его API абстрагирует особенности файловой системы, предоставляя единый способ управления каталогами и синхронизации индексов.

Предварительные требования

  • GroupDocs.Redaction NuGet пакет установлен (последний стабильный релиз).
  • Visual Studio 2022 или любой совместимый с .NET IDE.
  • Базовые знания C# (работа с файлами, обработка исключений).

Требуемые библиотеки, версии и зависимости

  • 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 Package Manager UI
Найдите “GroupDocs.Redaction” и установите последнюю версию.

Шаги получения лицензии

  1. Free Trial – Получите 30‑дневную пробную версию через портал GroupDocs.
  2. Temporary License – Запросите временный ключ для расширенного тестирования.
  3. Purchase – Приобретите производственную лицензию для разблокировки полной функциональности.

Как подготовить чистый рабочий каталог?

Загрузите целевую папку, удалите случайные временные файлы и скопируйте исходные документы, которые планируете индексировать. Этот шаг подготовки устраняет ошибки «файл‑используется» во время индексации и гарантирует, что построитель индекса работает с детерминированным набором файлов. Обеспечивая чистую среду, вы снижаете количество ложных срабатываний, избегаете проблем с правами доступа и повышаете общую производительность индексации.

Очистка каталога

Класс 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. Legal Document Management – Индексировать контракты, судебные материалы и файлы дел для мгновенного доступа.
  2. Digital Library Systems – Обеспечить поиск в реальном времени по тысячам электронных книг и научных статей.
  3. Enterprise Content Management – Поддерживать каталоги, готовые к аудиту, автоматически отражающие правила именования.
  4. Customer Support Archives – Быстро находить предыдущие заявки, PDF и статьи базы знаний.

Соображения по производительности

  • Batch Updates – Группировать изменения пакетами ≤ 500 файлов, чтобы избежать резких пиков ввода‑вывода.
  • Memory Management – Освобождать объект Index после каждой операции; библиотека автоматически освобождает нативные буферы.
  • Parallel Scanning – Включите IndexOptions.EnableParallelProcessing для использования многоядерных процессоров, достигая ускорения до 3× на 8‑ядерной машине.

Часто задаваемые вопросы

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 ГБ ОЗУ и 500 МБ свободного дискового пространства для временных буферов.

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");

Связанные руководства