Добавление документов в индекс: Мастерство поиска с учётом регистра в 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 для приложений в реальном времени?
О: При правильных стратегиях индексации (инкрементные обновления и кэширование в памяти) он может предоставлять почти мгновенные результаты поиска.
Ресурсы
- Документация: GroupDocs.Search Java Docs
- Справочник API: Java API Reference
- Скачать: Latest Releases
- Репозиторий GitHub: GroupDocs.Search for Java
- Форум поддержки: GroupDocs Free Support
- Временная лицензия: Acquire a Temporary License
Последнее обновление: 2026-02-06
Тестировано с: GroupDocs.Search 25.4
Автор: GroupDocs