Фильтрация по расширению файла в .NET с использованием GroupDocs.Redaction

Поиск по огромной коллекции файлов может казаться подавляющим, особенно когда нужны результаты только из определённых типов файлов. В этом руководстве вы узнаете как фильтровать по расширению файла с помощью GroupDocs.Redaction для .NET, позволяя искать только файлы txt или любое другое выбранное вами расширение. Мы пройдём настройку как фильтров по типу файлов, так и фильтров, основанных на пути, чтобы вы могли быстро находить именно те документы, которые нужны.

Быстрые ответы

  • Что делает «фильтрация по расширению файла»? Она ограничивает поиск документами, соответствующими заданному расширению (например, *.txt).
  • Зачем использовать GroupDocs.Redaction для этого? Он предоставляет встроенные API фильтрации, которые быстры и просты в интеграции.
  • Нужна ли лицензия? Бесплатная пробная версия подходит для тестирования; платная лицензия требуется для продакшн.
  • Какие версии .NET поддерживаются? .NET Framework 4.5+, .NET Core 3.1+, .NET 5/6+.
  • Можно ли комбинировать фильтры по типу файлов и пути? Да — применяйте несколько фильтров для высокой точности поиска.

Что вы узнаете

  • Как фильтровать по расширению файла, чтобы искались только текстовые файлы.
  • Как настроить фильтры пути к файлам, чтобы сузить результаты до определённых папок или шаблонов имен.
  • Советы по поддержанию индекса быстрым и экономным по памяти.

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

Прежде чем приступать, убедитесь, что у вас есть:

  • Библиотека GroupDocs.Redaction установлена и совместима с вашим .NET проектом.
  • Среда разработки, например Visual Studio или VS Code.
  • Базовые знания C# и знакомство со структурой .NET проекта.

Настройка GroupDocs.Redaction для .NET

Сначала добавьте библиотеку в ваш проект.

Использование .NET CLI:

dotnet add package GroupDocs.Redaction

Использование Package Manager:

Install-Package GroupDocs.Redaction

Или найдите “GroupDocs.Redaction” в UI NuGet Package Manager и установите последнюю версию.

Приобретение лицензии

Вы можете начать с бесплатной пробной версии или запросить временную лицензию. Для долгосрочных проектов приобретайте лицензию на официальном сайте.

Базовая инициализация

После установки пакета создайте индекс, который будет хранить ссылки на ваши документы:

using GroupDocs.Search;

string indexFolder = @"YOUR_DOCUMENT_DIRECTORY/SettingAFilter";
Index index = new Index(indexFolder);

Руководство по реализации

Функция 1: Установка фильтра для текстовых документов (.txt)

Как фильтровать по расширению файла для текстовых документов

  1. Определите индекс и папки документов
    Укажите пути, где находятся ваши исходные файлы:

    string indexFolder = @"YOUR_DOCUMENT_DIRECTORY/SettingAFilter";
    string documentsFolder = @"YOUR_DOCUMENT_DIRECTORY";
    
  2. Создайте индекс
    Загрузите все файлы из исходной папки в индекс:

    Index index = new Index(indexFolder);
    index.Add(documentsFolder); // Add all files from this directory to the index
    
  3. Настройте параметры поиска с фильтром по расширению файла
    Укажите движку рассматривать только файлы *.txt:

    SearchOptions options = new SearchOptions();
    options.SearchDocumentFilter = SearchDocumentFilter.CreateFileExtension(".txt");
    
  4. Выполните поиск
    Запустите запрос; фильтр гарантирует, что не‑текстовые файлы игнорируются:

    string query = "education";
    SearchResult result = index.Search(query, options);
    

    Объяснение: Метод Search возвращает совпадения, удовлетворяющие фильтру, значительно уменьшая шум и повышая производительность.

Функция 2: Фильтры пути к файлам

Зачем использовать фильтры пути к файлам?

Иногда необходимо ограничить поиск определённой папкой отдела или набором файлов, имеющих общую схему именования. Фильтры пути позволяют сделать именно это.

  1. Определите индекс и папки документов

    string indexFolder = @"YOUR_DOCUMENT_DIRECTORY/FilePathFilters";
    string documentsFolder = @"YOUR_DOCUMENT_DIRECTORY";
    
  2. Создайте индекс

    Index index = new Index(indexFolder);
    index.Add(documentsFolder);
    
  3. Настройте параметры поиска с регулярным выражением, основанным на пути

    SearchOptions options = new SearchOptions();
    ISearchDocumentFilter filter = SearchDocumentFilter.CreateFilePathRegularExpression("Lorem");
    options.SearchDocumentFilter = filter;
    

    Это регулярное выражение совпадает с любым файлом, полный путь которого содержит слово “Lorem”, позволяя нацеливаться на конкретные подпапки.

  4. Выполните поиск, основанный на пути

    SearchResult result = index.Search(query, options);
    

Практические применения

  • Управление юридическими документами – Быстро находите соответствующие контракты, хранящиеся в виде обычных текстовых файлов.
  • Академические исследования – Извлекайте только *.txt исследовательские заметки, принадлежащие определённой папке проекта.
  • Корпоративная отчётность – Фильтруйте внутренние отчёты по пути отдела (например, /Finance/2025/).

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

  • Индексируйте только те типы документов, которые действительно нужны; лишние файлы увеличивают размер индекса и время поиска.
  • Поддерживайте индекс актуальным с помощью запланированной задачи, вызывающей index.Add() для новых или изменённых файлов.
  • Используйте простые регулярные выражения; слишком сложные шаблоны могут замедлять поисковый движок.
  • Освобождайте объекты Index, когда они больше не нужны, чтобы освободить память.

Заключение

Теперь вы знаете, как фильтровать по расширению файла и применять фильтры пути к файлам с помощью GroupDocs.Redaction для .NET. Эти техники дают вам точный контроль над большими коллекциями документов, делая поиск быстрее и более релевантным. Далее экспериментируйте с комбинированием нескольких фильтров или интеграцией поиска в более крупный рабочий процесс приложения.

Раздел FAQ

Q1: Можно ли фильтровать документы, отличные от текстовых файлов?
A1: Да, GroupDocs.Redaction поддерживает множество форматов. Измените аргумент в CreateFileExtension на нужное расширение (например, “.pdf”).

Q2: Как регулярно обновлять мой поисковый индекс?
A2: Запланируйте фоновый сервис или cron‑задачу, которая будет запускать index.Add() в нужных директориях.

Q3: Есть ли влияние на производительность при фильтрации по пути к файлу?
A3: Правильно оптимизированные регулярные выражения имеют минимальное влияние, но всегда проводите бенчмарк на собственных данных.

Q4: Можно ли комбинировать несколько фильтров для более точного поиска?
A4: Конечно. Вы можете цепочкой применять фильтры или создавать составные фильтры, чтобы одновременно учитывать тип файла и путь.

Q5: Где можно найти больше ресурсов по GroupDocs.Redaction?
A5: Посетите официальную документацию по адресу GroupDocs Documentation для подробных руководств и справочников API.

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

Q: Работает ли SearchDocumentFilter с зашифрованными файлами?
A: Сам фильтр работает с метаданными файлов, поэтому зашифрованные файлы всё равно индексируются, если вы предоставляете необходимые учётные данные для расшифровки во время индексирования.

Q: Можно ли использовать подстановочные знаки вместо регулярного выражения для фильтрации пути?
A: В текущей версии API требуется регулярное выражение, но вы можете имитировать простые подстановки (например, .* для любых символов).

Q: Насколько большим может быть индекс, прежде чем потребуется шардирование?
A: Индексы размером в несколько сотен гигабайт могут выиграть от разделения на несколько логических индексов; проверяйте производительность по мере роста коллекции.

Q: Есть ли встроенные методы для удаления документов из индекса?
A: Да — вызовите index.Delete(documentId) или index.DeleteAll() для управления устаревшими записями.

Q: Есть ли способ предварительно просмотреть результаты поиска перед загрузкой полного документа?
A: Объект SearchResult включает информацию о фрагменте, которую можно отобразить в UI без открытия полного файла.

Ресурсы


Last Updated: 2026-04-02
Tested With: GroupDocs.Redaction 23.12 for .NET
Author: GroupDocs