Добавление документов в индекс с поиском по фрагментам в Java
В современном мире, ориентированном на данные, возможность быстро добавлять документы в индекс и затем выполнять поиск по фрагментам является критически важной для любого приложения, работающего с большими коллекциями файлов. Будь то юридические контракты, архивы службы поддержки клиентов или огромные исследовательские библиотеки, это руководство покажет, как настроить GroupDocs.Search для Java, чтобы эффективно индексировать документы и извлекать релевантную информацию небольшими порциями.
Что вы узнаете
- Как создать поисковый индекс в указанной папке.
- Шаги для добавления документов в индекс из нескольких мест.
- Настройка параметров поиска для включения поиска по фрагментам.
- Выполнение начального и последующего поиска по фрагментам.
- Реальные сценарии, где поиск по фрагментам документов проявляет себя наилучшим образом.
Быстрые ответы
- Какой первый шаг? Создать папку поискового индекса.
- Как включить множество файлов? Использовать
index.add()для каждой папки с документами. - Какая опция включает поиск по фрагментам?
options.setChunkSearch(true). - Можно ли продолжать поиск после первого фрагмента? Да, вызвать
index.searchNext()с токеном. - Нужна ли лицензия? Бесплатная пробная или временная лицензия подходит для разработки; полная лицензия требуется для продакшн‑использования.
Предварительные требования
Чтобы следовать этому руководству, убедитесь, что у вас есть:
- Необходимые библиотеки: GroupDocs.Search для Java 25.4 или новее.
- Настройка окружения: Установлен совместимый Java Development Kit (JDK).
- Базовые знания: Основы программирования на Java и знакомство с Maven.
Настройка GroupDocs.Search для Java
Для начала интегрируйте GroupDocs.Search в ваш проект с помощью Maven:
<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.Search:
- Бесплатная пробная версия – тестируйте основные функции без обязательств.
- Временная лицензия – расширенный доступ для разработки.
- Покупка – полная лицензия для использования в продакшн.
Базовая инициализация и настройка
Создайте индекс в папке, где будет храниться поисковая информация:
import com.groupdocs.search.*;
public class CreateIndex {
public static void main(String[] args) {
String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\output\\AdvancedUsage\\Searching\\SearchByChunks";
// Creating an index in the specified folder
Index index = new Index(indexFolder);
}
}
Как добавить документы в индекс
Теперь, когда индекс существует, следующий логичный шаг – добавить документы в индекс из мест, где хранятся ваши файлы.
1. Создание индекса
Обзор: Настройте каталог для поискового индекса.
String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\output\\AdvancedUsage\\Searching\\SearchByChunks";
Index index = new Index(indexFolder);
2. Добавление документов в индекс
Обзор: Подключите файлы из нескольких исходных папок.
String documentsFolder1 = "YOUR_DOCUMENT_DIRECTORY";
String documentsFolder2 = "YOUR_DOCUMENT_DIRECTORY";
String documentsFolder3 = "YOUR_DOCUMENT_DIRECTORY";
index.add(documentsFolder1);
index.add(documentsFolder2);
index.add(documentsFolder3);
3. Настройка параметров поиска для фрагментного поиска
Включите поиск по фрагментам, изменив объект параметров.
SearchOptions options = new SearchOptions();
options.setChunkSearch(true);
4. Выполнение начального поиска по фрагментам
Запустите первый запрос, используя параметры с включённым фрагментным поиском.
String query = "invitation";
SearchResult result = index.search(query, options);
5. Продолжение поиска по фрагментам
Итерируйте оставшиеся фрагменты, пока поиск не завершится.
while (result.getNextChunkSearchToken() != null) {
result = index.searchNext(result.getNextChunkSearchToken());
}
Почему стоит использовать поиск по фрагментам?
Поиск по фрагментам разбивает огромные коллекции документов на управляемые части, снижая нагрузку на память и ускоряя время отклика. Это особенно полезно, когда:
- Юридические команды должны находить конкретные пункты среди тысяч контрактов.
- Порталы поддержки клиентов мгновенно предоставляют релевантные статьи базы знаний.
- Исследователи просеивают обширные наборы данных без загрузки целых файлов в память.
Соображения по производительности
- Управление памятью – Выделите достаточный объём кучи (
-Xmx) для больших индексов. - Мониторинг ресурсов – Следите за загрузкой CPU во время индексации и поиска.
- Обслуживание индекса – Периодически перестраивайте или очищайте индекс, чтобы удалить устаревшие данные.
Распространённые ошибки и их устранение
| Проблема | Почему происходит | Решение |
|---|---|---|
OutOfMemoryError во время индексации | Размер кучи слишком мал | Увеличьте heap JVM (-Xmx2g или больше) |
| Нет результатов | Токен фрагмента не обработан | Убедитесь, что цикл while работает до тех пор, пока getNextChunkSearchToken() не станет null |
| Медленная работа поиска | Индекс не оптимизирован | Выполните index.optimize() после массового добавления |
Часто задаваемые вопросы
В: Что такое поиск по фрагментам?
О: Поиск по фрагментам делит набор данных на более мелкие части, позволяя эффективно выполнять запросы к большим объёмам данных без загрузки целых документов в память.
В: Как обновить индекс новыми файлами?
О: Просто вызовите index.add() с путём к новым документам; индекс автоматически их включит.
В: Может ли GroupDocs.Search работать с разными форматами файлов?
О: Да, поддерживает PDF, DOCX, XLSX, PPTX и многие другие распространённые форматы.
В: Какие типичные узкие места в производительности?
О: Ограничения памяти и неоптимизированные индексы – самые частые проблемы; выделяйте достаточный heap и регулярно оптимизируйте индекс.
В: Где найти более подробную документацию?
О: Посетите официальную GroupDocs.Search Documentation для углублённых руководств и справочников API.
Ресурсы
- Документация: GroupDocs.Search for Java Docs
- Справочник API: GroupDocs.Search API Reference
- Загрузка: GroupDocs.Search Releases
- GitHub: GroupDocs.Search GitHub Repository
- Бесплатная поддержка: GroupDocs Forum
- Временная лицензия: Obtain a Temporary License
Последнее обновление: 2025-12-19
Тестировано с: GroupDocs.Search 25.4 for Java
Автор: GroupDocs