Освоение фильтра расширения файлов java с GroupDocs.Search

Управление растущим репозиторием документов может быстро стать непосильным. Если вам нужно индексировать только определённые типы документов или исключать нерелевантные файлы, java file extension filter предоставляет точный контроль над тем, какие файлы обрабатываются. В этом руководстве мы пройдём настройку GroupDocs.Search для Java и покажем, как комбинировать фильтрацию по расширению файлов с логическими операторами AND, OR и NOT, а также с фильтрами диапазона дат и путей.

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

  • Что такое java file extension filter? Конфигурация, которая указывает GroupDocs.Search, какие расширения файлов включать или исключать при индексации.
  • Какая библиотека предоставляет эту функцию? GroupDocs.Search for Java.
  • Нужна ли лицензия? Бесплатная пробная версия подходит для оценки; полная лицензия требуется для продакшн.
  • Можно ли комбинировать фильтры? Да — вы можете последовательно применять фильтры по расширению, дате, размеру и пути с логикой AND, OR, NOT.
  • Совместим ли он с Maven? Абсолютно — добавьте зависимость GroupDocs.Search в ваш pom.xml.

Введение

Трудно эффективно управлять растущим репозиторием файлов? Если вам нужно организовать документы по типу или отфильтровать ненужные файлы при индексации, задача может быть сложной без подходящих инструментов. GroupDocs.Search for Java — это продвинутая поисковая библиотека, упрощающая эти задачи благодаря мощным возможностям фильтрации файлов. Этот учебник поможет вам реализовать техники фильтрации файлов .NET с использованием GroupDocs.Search, сосредотачивая внимание на логических фильтрах AND, OR и NOT.

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

  • Настройка GroupDocs.Search в вашей Java‑среде
  • Реализация различных фильтров: расширение файла, логические операторы (AND, OR, NOT), время создания, время изменения, путь к файлу и длина
  • Практические применения этих фильтров для эффективного управления документами
  • Советы по оптимизации производительности для задач масштабной индексации

Готовы раскрыть весь потенциал фильтрации файлов в Java? Давайте сначала рассмотрим предварительные требования.

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

Прежде чем начать, убедитесь, что у вас есть следующее:

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

  • GroupDocs.Search for Java: Версия 25.4 или новее
  • Java Development Kit (JDK): Убедитесь, что на вашей системе установлена совместимая версия.

Настройка окружения

  • Integrated Development Environment (IDE): Используйте IntelliJ IDEA, Eclipse или любую предпочитаемую IDE, поддерживающую Maven‑проекты.

Требования к знаниям

  • Базовое понимание программирования на Java
  • Знакомство с операциями ввода‑вывода файлов в Java
  • Понимание регулярных выражений и работы с датой‑временем

Настройка GroupDocs.Search для Java

Чтобы начать использовать GroupDocs.Search, необходимо добавить его в качестве зависимости в ваш проект. Вот как это сделать:

Конфигурация Maven

Добавьте следующую конфигурацию репозитория и зависимости в ваш файл pom.xml:

<repositories>
    <repository>
        <id>repository.groupdocs.com</id>
        <name>GroupDocs Repository</name>
        <url>https://releases.groupdocs.com/search/java/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-search</artifactId>
        <version>25.4</version>
    </dependency>
</dependencies>

Прямое скачивание

Либо скачайте последнюю версию напрямую с GroupDocs.Search for Java releases.

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

  1. Free Trial: Начните с бесплатной пробной версии, чтобы изучить возможности GroupDocs.Search.
  2. Temporary License: Запросите временную лицензию для доступа к полному функционалу без ограничений.
  3. Purchase: Для длительного использования приобретите подписку.

Базовая инициализация и настройка

После добавления библиотеки инициализируйте вашу среду индексации:

import com.groupdocs.search.*;

String indexFolder = "YOUR_OUTPUT_DIRECTORY";
Index index = new Index(indexFolder);

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

Теперь давайте рассмотрим, как реализовать различные функции фильтрации файлов с помощью GroupDocs.Search.

Фильтрация по расширению файлов

Фильтруйте файлы по их расширениям во время индексации. Эта функция полезна для обработки только определённых типов документов, таких как FB2, EPUB и TXT.

Обзор

Фильтруйте документы по расширению файла, используя пользовательскую конфигурацию фильтра.

Шаги реализации

  1. Создать фильтр:

    DocumentFilter filter = DocumentFilter.createFileExtension(".fb2", ".epub", ".txt");
    IndexSettings settings = new IndexSettings();
    settings.setDocumentFilter(filter);
    
  2. Инициализировать индекс и добавить документы:

    Index index = new Index("YOUR_OUTPUT_DIRECTORY\\FileExtensionFilter", settings);
    index.add("YOUR_DOCUMENT_DIRECTORY");
    

Логический NOT‑фильтр

Исключайте определённые расширения файлов при индексации, такие как HTM, HTML и PDF.

Шаги реализации

  1. Создать фильтр исключения:

    DocumentFilter filterNot = DocumentFilter.createFileExtension(".htm", ".html", ".pdf");
    DocumentFilter invertedFilter = DocumentFilter.createNot(filterNot);
    
  2. Применить к настройкам индекса:

    IndexSettings settingsNot = new IndexSettings();
    settingsNot.setDocumentFilter(invertedFilter);
    
  3. Добавить документы:

    Index indexNot = new Index("YOUR_OUTPUT_DIRECTORY\\LogicalNotFilter", settingsNot);
    indexNot.add("YOUR_DOCUMENT_DIRECTORY");
    

Логический AND‑фильтр

Комбинируйте несколько критериев, чтобы включать только файлы, соответствующие всем указанным условиям.

Обзор

Используйте логические операции AND для фильтрации файлов по времени создания, расширению и длине.

Шаги реализации

  1. Определить фильтры:

    DocumentFilter filter1 = DocumentFilter.createCreationTimeRange(Utils.createDate(2015, 1, 1), Utils.createDate(2016, 1, 1));
    DocumentFilter filter2 = DocumentFilter.createFileExtension(".txt");
    DocumentFilter filter3 = DocumentFilter.createFileLengthUpperBound(8 * 1024 * 1024);
    
  2. Комбинировать фильтры:

    DocumentFilter finalFilterAnd = DocumentFilter.createAnd(filter1, filter2, filter3);
    IndexSettings settingsAnd = new IndexSettings();
    settingsAnd.setDocumentFilter(finalFilterAnd);
    
  3. Индексировать документы:

    Index indexAnd = new Index("YOUR_OUTPUT_DIRECTORY\\LogicalAndFilter", settingsAnd);
    indexAnd.add("YOUR_DOCUMENT_DIRECTORY");
    

Логический OR‑фильтр

Шаги реализации

  1. Определить фильтры:

    DocumentFilter txtFilter = DocumentFilter.createFileExtension(".txt");
    DocumentFilter notTxtFilter = DocumentFilter.createNot(txtFilter);
    
  2. Комбинировать фильтры с логическими условиями:

    DocumentFilter bound5Filter = DocumentFilter.createFileLengthUpperBound(5 * 1024 * 1024);
    DocumentFilter bound10Filter = DocumentFilter.createFileLengthUpperBound(10 * 1024 * 1024);
    
    DocumentFilter txtSizeFilter = DocumentFilter.createAnd(txtFilter, bound5Filter);
    DocumentFilter notTxtSizeFilter = DocumentFilter.createAnd(notTxtFilter, bound10Filter);
    
  3. Завершить OR‑фильтр:

    DocumentFilter finalFilterOr = DocumentFilter.createOr(txtSizeFilter, notTxtSizeFilter);
    
    IndexSettings settingsOr = new IndexSettings();
    settingsOr.setDocumentFilter(finalFilterOr);
    Index indexOr = new Index("YOUR_OUTPUT_DIRECTORY\\LogicalOrFilter", settingsOr);
    indexOr.add("YOUR_DOCUMENT_DIRECTORY");
    

Фильтры по времени создания

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

Шаги реализации

  1. Определить фильтр диапазона дат:

    DocumentFilter filter3CTime = DocumentFilter.createCreationTimeRange(Utils.createDate(2017, 1, 1), Utils.createDate(2018, 6, 15));
    IndexSettings settingsCTime = new IndexSettings();
    settingsCTime.setDocumentFilter(filter3CTime);
    
  2. Индексировать документы:

    Index indexCTime = new Index("YOUR_OUTPUT_DIRECTORY\\CreationTimeFilters", settingsCTime);
    indexCTime.add("YOUR_DOCUMENT_DIRECTORY");
    

Фильтры по времени изменения

Исключайте файлы, изменённые после определённой даты.

Шаги реализации

  1. Определить фильтр:

    DocumentFilter filter2MTime = DocumentFilter.createModificationTimeUpperBound(Utils.createDate(2018, 6, 15));
    IndexSettings settingsMTime = new IndexSettings();
    settingsMTime.setDocumentFilter(filter2MTime);
    
  2. Индексировать документы:

    Index indexMTime = new Index("YOUR_OUTPUT_DIRECTORY\\ModificationTimeFilters", settingsMTime);
    indexMTime.add("YOUR_DOCUMENT_DIRECTORY");
    

Фильтрация по пути к файлу

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

Шаги реализации

  1. Определить фильтр пути к файлу:

    DocumentFilter pathFilter = DocumentFilter.createPath("*.txt", "documents/");
    IndexSettings settingsPath = new IndexSettings();
    settingsPath.setDocumentFilter(pathFilter);
    
  2. Инициализировать индекс и добавить документы:

    Index indexPath = new Index("YOUR_OUTPUT_DIRECTORY\\FilePathFilter", settingsPath);
    indexPath.add("YOUR_DOCUMENT_DIRECTORY");
    

Распространённые ошибки и советы

  • Никогда не смешивайте абсолютные и относительные пути в одной конфигурации фильтра — это может привести к неожиданным исключениям.
  • Не забудьте сбросить IndexSettings при переключении с одного набора фильтров на другой; иначе предыдущие фильтры могут оставаться.
  • Большие коллекции файлов выигрывают от комбинирования верхнего предела длины с фильтром по расширению, чтобы снизить использование памяти.

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

Q: Можно ли изменить критерии фильтра после создания индекса?
A: Да. Вы можете перестроить индекс с новым DocumentFilter или использовать инкрементную индексацию с обновлёнными настройками.

Q: Работает ли java file extension filter с сжатыми архивами (например, ZIP)?
A: GroupDocs.Search может индексировать поддерживаемые форматы архивов, но фильтр по расширению применяется к самому архиву, а не к вложенным файлам. При необходимости используйте вложенные фильтры.

Q: Как отладить, почему конкретный файл был исключён?
A: Включите логирование библиотеки (установите LoggingOptions.setEnabled(true)) и просмотрите сгенерированный журнал — он сообщает, какой фильтр отклонил каждый файл.

Q: Можно ли комбинировать java file extension filter с пользовательскими regex‑фильтрами?
A: Абсолютно. Вы можете обернуть regex‑фильтр внутри DocumentFilter.createAnd() вместе с фильтром по расширению.

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


Последнее обновление: 2025-12-19
Тестировано с: GroupDocs.Search 25.4 for Java
Автор: GroupDocs