Добавление документов в индекс: Мастерство поиска с учётом регистра в Java с GroupDocs

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

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

  • Какой основной шаг для начала поиска? Добавьте документы в индекс с помощью index.add(...).
  • Как включить поиск с учётом регистра? Установите options.setUseCaseSensitiveSearch(true).
  • Можно ли искать по нескольким каталогам? Да — вызывайте index.add() для каждой папки, которую хотите включить.
  • Какой метод позволяет искать с объектами? Используйте SearchQuery.createWordQuery(...).
  • Нужна ли лицензия для тестирования? Доступна временная лицензия для пробного использования.

Что означает «добавление документов в индекс»?

Добавление документов в индекс означает загрузку ваших исходных файлов (PDF, документы Word, обычный текст и т.д.) в GroupDocs.Search, чтобы он мог построить структуру данных, пригодную для поиска. После индексации движок может выполнять быстрые запросы, включая запросы с учётом регистра.

Почему включать поиск с учётом регистра в Java?

  • Точное совпадение терминов — различать «Apple» (компания) и «apple» (фрукт).
  • Соответствие нормативным требованиям — некоторые отрасли требуют точного совпадения фраз.
  • Повышенная релевантность — пользователи часто ожидают результаты с учётом регистра в технических или юридических контекстах.

Требования

  • JDK (рекомендуется Java 17 или новее)
  • Maven для управления зависимостями
  • IDE, например IntelliJ IDEA или Eclipse
  • Базовые знания программирования на Java

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

Сначала добавьте репозиторий GroupDocs и зависимость в ваш 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.

Лицензирование

Чтобы начать работу с пробной версией, посетите GroupDocs и получите временную лицензию. Это позволит вам протестировать все функции без ограничений.

Как добавить документы в индекс — Поиск текстовым запросом

Шаг 1: Создайте индекс и добавьте свои документы

Создайте папку, в которой будут храниться файлы индекса, затем добавьте исходный каталог, содержащий документы, которые вы хотите искать.

String indexFolder = YOUR_OUTPUT_DIRECTORY + "/CaseSensitiveSearch/QueryInTextForm";
Index index = new Index(indexFolder);
index.add(YOUR_DOCUMENT_DIRECTORY); // Add documents to the index

Совет: Вы можете вызывать index.add() несколько раз, чтобы искать по нескольким каталогам в одном индексе.

Шаг 2: Включите поиск с учётом регистра

Настройте параметры поиска, чтобы учитывать регистр букв.

SearchOptions options = new SearchOptions();
options.setUseCaseSensitiveSearch(true);

Шаг 3: Выполните текстовый запрос с учётом регистра

Выполните запрос, который различает «Advantages» и «advantages».

String query = "Advantages";
SearchResult result = index.search(query, options);

// Output results
for (FoundDocument doc : result.getDocuments()) {
    System.out.println("Document: " + doc.getDocumentInfo().getFilePath());
}

Цикл выводит полный путь к каждому документу, содержащему точный термин с учётом регистра.

Как добавить документы в индекс — Поиск объектным запросом

Объектные запросы предоставляют большую гибкость, особенно когда необходимо комбинировать несколько критериев.

Шаг 1: Инициализируйте второй индекс (по желанию)

Если вы предпочитаете держать объектные поиски отдельно, создайте другую папку для индекса.

String indexFolder = YOUR_OUTPUT_DIRECTORY + "/CaseSensitiveSearch/QueryInObjectForm";
Index index = new Index(indexFolder);
index.add(YOUR_DOCUMENT_DIRECTORY); // Add documents to the index

Шаг 2: Повторно используйте параметр поиска с учётом регистра

Тот же экземпляр SearchOptions работает и для объектных запросов.

SearchOptions options = new SearchOptions();
options.setUseCaseSensitiveSearch(true);

Шаг 3: Постройте и выполните объектный запрос

Создайте объект word query и передайте его в поисковый движок.

SearchQuery query = SearchQuery.createWordQuery("Advantages");
SearchResult result = index.search(query, options);

// Output results
for (FoundDocument doc : result.getDocuments()) {
    System.out.println("Document: " + doc.getDocumentInfo().getFilePath());
}

Использование createWordQuery позволяет позже комбинировать его с запросами фраз, подстановочных знаков или булевыми запросами для более сложных сценариев.

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

  • Управление юридическими документами: Получайте нормативные акты, где важен регистр.
  • Платформы электронной коммерции: Различайте артикулы продуктов, например «PRO‑X» и «pro‑x».
  • Системы управления контентом (CMS): Обеспечьте авторам поиск точных заголовков или тегов.

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

  • Поддерживайте индекс в актуальном состоянии — переиндексируйте при добавлении новых файлов или изменении существующих.
  • Следите за использованием памяти — большие корпуса выигрывают от инкрементной индексации и правильного размера кучи JVM.
  • Используйте сборщик мусора Java — освобождайте объекты Index, когда они больше не нужны.

Распространённые проблемы и решения

ПроблемаРешение
useCaseSensitiveSearch кажется игнорируетсяУбедитесь, что вы используете последнюю версию GroupDocs.Search и что индекс был перестроен после изменения параметра.
Не возвращаются результаты для известного терминаУбедитесь, что регистр термина точно совпадает и что документ был успешно добавлен в индекс.
Поиск по многим папкам замедляетсяДобавляйте каждую папку отдельно с помощью index.add() и рассмотрите возможность разделения индекса на шарды для очень больших наборов данных.

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

В: Как работать с большими наборами данных в GroupDocs.Search?
О: Используйте разбиение индекса, настройте параметры памяти JVM и периодически компактируйте индекс для поддержания оптимальной производительности.

В: Можно ли искать одновременно по нескольким каталогам?
О: Да — вызывайте index.add() для каждого каталога, который хотите включить, затем выполните один запрос к объединённому индексу.

В: Какие типичные подводные камни при настройке поиска с учётом регистра?
О: Забвение перестроить индекс после включения useCaseSensitiveSearch или использование неверного регистра в строке запроса.

В: Как отлаживать ошибки поиска?
О: Проверьте файлы журналов, генерируемые GroupDocs.Search, на наличие трассировок стека и убедитесь, что все зависимости Maven корректно разрешены.

В: Подходит ли GroupDocs.Search для приложений в реальном времени?
О: При правильных стратегиях индексации (инкрементные обновления и кэширование в памяти) он может предоставлять почти мгновенные результаты поиска.

Ресурсы


Последнее обновление: 2026-02-06
Тестировано с: GroupDocs.Search 25.4
Автор: GroupDocs