Добавление документов в индекс с поиском по фрагментам в 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());
}

Почему стоит использовать поиск по фрагментам?

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

  1. Юридические команды должны находить конкретные пункты среди тысяч контрактов.
  2. Порталы поддержки клиентов мгновенно предоставляют релевантные статьи базы знаний.
  3. Исследователи просеивают обширные наборы данных без загрузки целых файлов в память.

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

  • Управление памятью – Выделите достаточный объём кучи (-Xmx) для больших индексов.
  • Мониторинг ресурсов – Следите за загрузкой CPU во время индексации и поиска.
  • Обслуживание индекса – Периодически перестраивайте или очищайте индекс, чтобы удалить устаревшие данные.

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

ПроблемаПочему происходитРешение
OutOfMemoryError во время индексацииРазмер кучи слишком малУвеличьте heap JVM (-Xmx2g или больше)
Нет результатовТокен фрагмента не обработанУбедитесь, что цикл while работает до тех пор, пока getNextChunkSearchToken() не станет null
Медленная работа поискаИндекс не оптимизированВыполните index.optimize() после массового добавления

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

В: Что такое поиск по фрагментам?
О: Поиск по фрагментам делит набор данных на более мелкие части, позволяя эффективно выполнять запросы к большим объёмам данных без загрузки целых документов в память.

В: Как обновить индекс новыми файлами?
О: Просто вызовите index.add() с путём к новым документам; индекс автоматически их включит.

В: Может ли GroupDocs.Search работать с разными форматами файлов?
О: Да, поддерживает PDF, DOCX, XLSX, PPTX и многие другие распространённые форматы.

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

В: Где найти более подробную документацию?
О: Посетите официальную GroupDocs.Search Documentation для углублённых руководств и справочников API.

Ресурсы


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