Фильтрация по расширению файла в .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)
Как фильтровать по расширению файла для текстовых документов
Определите индекс и папки документов
Укажите пути, где находятся ваши исходные файлы:string indexFolder = @"YOUR_DOCUMENT_DIRECTORY/SettingAFilter"; string documentsFolder = @"YOUR_DOCUMENT_DIRECTORY";Создайте индекс
Загрузите все файлы из исходной папки в индекс:Index index = new Index(indexFolder); index.Add(documentsFolder); // Add all files from this directory to the indexНастройте параметры поиска с фильтром по расширению файла
Укажите движку рассматривать только файлы *.txt:SearchOptions options = new SearchOptions(); options.SearchDocumentFilter = SearchDocumentFilter.CreateFileExtension(".txt");Выполните поиск
Запустите запрос; фильтр гарантирует, что не‑текстовые файлы игнорируются:string query = "education"; SearchResult result = index.Search(query, options);Объяснение: Метод
Searchвозвращает совпадения, удовлетворяющие фильтру, значительно уменьшая шум и повышая производительность.
Функция 2: Фильтры пути к файлам
Зачем использовать фильтры пути к файлам?
Иногда необходимо ограничить поиск определённой папкой отдела или набором файлов, имеющих общую схему именования. Фильтры пути позволяют сделать именно это.
Определите индекс и папки документов
string indexFolder = @"YOUR_DOCUMENT_DIRECTORY/FilePathFilters"; string documentsFolder = @"YOUR_DOCUMENT_DIRECTORY";Создайте индекс
Index index = new Index(indexFolder); index.Add(documentsFolder);Настройте параметры поиска с регулярным выражением, основанным на пути
SearchOptions options = new SearchOptions(); ISearchDocumentFilter filter = SearchDocumentFilter.CreateFilePathRegularExpression("Lorem"); options.SearchDocumentFilter = filter;Это регулярное выражение совпадает с любым файлом, полный путь которого содержит слово “Lorem”, позволяя нацеливаться на конкретные подпапки.
Выполните поиск, основанный на пути
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 без открытия полного файла.
Ресурсы
- Документация: GroupDocs Documentation
- Справочник API: GroupDocs API Reference
- Скачать: GroupDocs Downloads
- Бесплатная поддержка: GroupDocs Forum
- Временная лицензия: GroupDocs Temporary License
Last Updated: 2026-04-02
Tested With: GroupDocs.Redaction 23.12 for .NET
Author: GroupDocs