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

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

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

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

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

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

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

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

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

  • Java Development Kit (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");
  • Динамическая индексация: Используйте метод addDirectories, чтобы добавлять каталоги в индекс «на лету» без перезапуска сети.

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

Шаг 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
        }
    }
}
  • Управление шардами: Эффективно обрабатывает большие наборы данных, распределяя документы по шардам. Чтобы оптимизировать размер шарда, отслеживайте статистику шардов и корректируйте конфигурацию shardSize в будущих выпусках.

Почему это важно для вашего проекта

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

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

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


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