Как настроить поиск с GroupDocs.Search в Java

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

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

  • Какова основная цель поисковой сети? Распределять индексацию и обработку запросов по нескольким узлам для масштабируемости и скорости.
  • Какая версия библиотеки требуется? GroupDocs.Search для Java v25.4 или новее.
  • Нужна ли лицензия? Для оценки подходит бесплатная пробная версия; для продакшн‑использования требуется коммерческая лицензия.
  • Как обрабатываются обновления в реальном времени? Путём подписки на события узлов, которые срабатывают при изменениях индекса.
  • Можно ли добавить новые папки с документами «на лету»? Да — используйте метод addDirectories индексатора.

Что означает «настройка поиска» в контексте GroupDocs?

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

Почему использовать GroupDocs.Search для Java?

  • Масштабируемость: Распределять нагрузку по нескольким машинам.
  • Обновления в реальном времени: Мгновенно отражать новые проиндексированные файлы во всей сети.
  • Лёгкость интеграции: Простая настройка Maven и понятные Java API.
  • Готово для предприятий: Обрабатывает большие корпусы и сложные запросы.

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

  • Комплект разработки Java (JDK)8+ установлен.
  • Maven для управления зависимостями.
  • Базовые знания Java, Maven и определение концепций.

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

Зависимость 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 для Java.

Получение лицензии

  • Бесплатная пробная версия: Получите пробную лицензию, чтобы изучить все функции.
  • Временная лицензия: Запросите оценку длительных периодов.
  • Коммерческая лицензия: Требуется для продакшн‑развертываний.

Базовая инициализация

import com.groupdocs.search.Configuration;
// Initialize configuration with your document path and port
String basePath = "YOUR_DOCUMENT_DIRECTORY/AdvancedUsage/Scaling/GettingDocumentsInNetwork/";
int basePort = 49112;

Configuration config = new Configuration(basePath, basePort);

Как настроить поисковую сеть в Java

Шаг 1: Импорт необходимых пакетов

import com.groupdocs.search.scaling.ConfiguringSearchNetwork;
import com.groupdocs.search.scaling.Configuration;

Шаг 2: Настройка сети

String basePath = "YOUR_DOCUMENT_DIRECTORY/AdvancedUsage/Scaling/GettingDocumentsInNetwork/";
int basePort = 49112;

Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
  • Параметры: basePath указывает на папку с вашими документами; basePort — TCP‑порт, используемый для связи узлов.

Развертывание узлов поисковой сети

Шаг 1: Импорт пакета развертывания

import com.groupdocs.search.scaling.SearchNetworkDeployment;
import com.groupdocs.search.scaling.SearchNetworkNode;

Шаг 2: Развертывание узлов

String[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);
SearchNetworkNode masterNode = nodes[0]; // Designate the first node as the master node
  • Главный узел: Координирует поиск и индексацию на всех узлах.

Подписка на события узлов для получения обновлений поиска в реальном времени

Шаг 1: Импорт пакета событий

import com.groupdocs.search.scaling.SearchNetworkNodeEvents;

Шаг 2: Подписка на события главного узла

SearchNetworkNodeEvents.subscribe(masterNode);
  • Обработка событий: Включает обновления поиска в реальном времени при добавлении, обновлении или удалении документов.

Добавление каталогов для индексирования

Шаг 1: Импорт пакета индексатора

import com.groupdocs.search.examples.Utils;
import com.groupdocs.search.scaling.Indexer;

Шаг 2: Добавление каталогов документов

Indexer indexer = masterNode.getIndexer();
indexer.addDirectories("YOUR_DOCUMENT_DIRECTORY/DocumentsPath");
  • Динамическая индексация: Добавляйте столько папок, сколько нужно; сеть будет индексировать их автоматически.

Получение индексированных документов

Шаг 1: Импорт пакета поиска

import com.groupdocs.search.scaling.Searcher;
import com.groupdocs.search.scaling.NetworkDocumentInfo;

Шаг 2: Получение информации о документе

Searcher searcher = masterNode.getSearcher();
int[] shardIndices = masterNode.getShardIndices();

for (int i = 0; i < shardIndices.length; i++) {
    int shardIndex = shardIndices[i];
    NetworkDocumentInfo[] infos = searcher.getIndexedDocuments(shardIndex);

    for (NetworkDocumentInfo info : infos) {
        int nodeIndex = masterNode.getNodeIndex(info.getShardIndex());
        String filePath = info.getDocumentInfo().getFilePath();

        // Retrieve and process document attributes
        String[] attributes = indexer.getAttributes(filePath);
        
        NetworkDocumentInfo[] items = searcher.getIndexedDocumentItems(info);
        for (NetworkDocumentInfo item : items) {
            // Process each indexed item
        }
    }
}
  • Управление шардами: Эффективно обрабатывает большие наборы данных, распределяя документы по шартам.

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

  1. Корпоративное управление документами: Централизованный поиск по миллионам файлов.
  2. Юридические фирмы: Быстро находить юридические дела, контракты и доказательства.
  3. Академические исследования: Индексировать журналы и статьи для мгновенного доступа.

Вопросы производительности

  • Оптимизировать индексацию: Планировать регулярные обновления индекса и удалять устаревшие данные.
  • Управление памятью: Следить за кучей JVM, особенно при работе с определенными шардами.
  • Планирование масштабируемости: Добавлены узлы по мере роста корпуса; сеть автоматически балансирует нагрузку.

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

ПроблемаПричинаРешение
Узлы не могут быть подключеныКонфликт портов или брандмауэрУбедитесь, что basePort открыт и не используется другими сервисами
Индекс не обновляетсяОтсутствует подписка на событияВызовите SearchNetworkNodeEvents.subscribe(masterNode) после развертывания
Ошибки «Недостаточно памяти»Слишком много больших шардов загруженоУменьшите размер шарда или увеличьте государственный JVM (флаг -Xmx)

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

В: Можно ли добавить новые каталоги после запуска сети? О: Да — вскормите метод indexer.addDirectories(); подписанные события будут распространять обновления в первое время.

В: Как контролировать состояние узлов? О: Каждый SearchNetworkNode обеспечивает API-требование; Интегрируйте их выбранным прибором «Диптихи».

В: Можно ли включить главный узел на отдельном компьютере? О: Да. Просто убедитесь, что все узлы используют один и тот же basePort и могут соединяться друг с другом по сети.

В: Какие форматы файлов применяются? О: GroupDocs.Search поддерживает PDF, Word, Excel, PowerPoint, обычный текст и многие другие форматы сразу же.

В: Нужно ли перезапускать сеть после добавления нового узла? О: Нет — узлы можно подключать или удалять управления; Главный узел автоматически перераспределяет шарды.

Заключение

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


Последнее обновление: 08.01.2026 Протестировано с: GroupDocs.Search для Java 25.4 Автор: GroupDocs