Как добавить зависимость GroupDocs Maven для поисковой сети
В этом полном руководстве вы узнаете как добавить зависимость groupdocs Maven, настроите надёжную поисковую сеть Java с использованием GroupDocs.Search и синхронизируете ваши шарды. Независимо от того, индексируете ли вы юридические документы, финансовые отчёты или академические статьи, нижеописанные шаги помогут вам создать поисковые индексы, распределить нагрузку запросов по узлам и поддерживать согласованность данных с минимальными усилиями.
Быстрые ответы
- Что такое зависимость GroupDocs Maven? Maven‑артефакт, который включает библиотеку GroupDocs.Search для Java‑проектов.
- Зачем использовать поисковую сеть? Она распределяет нагрузку индексации и запросов по нескольким узлам, повышая скорость и надёжность.
- Как добавить каталоги в индекс? Используйте
IndexingDocuments.addDirectoriesна главном узле. - Как синхронизировать шарды? Вызовите
SynchronizeOptionsуIndexerкаждого узла. - Нужна ли лицензия? Да, для использования в продакшене требуется пробная или коммерческая лицензия.
Что такое зависимость GroupDocs Maven?
GroupDocs Maven dependency — это Maven‑артефакт, который включает библиотеку GroupDocs.Search для Java‑проектов.
Он предоставляет все необходимые классы для создания поисковых индексов, управления узлами сети и выполнения быстрых запросов, а Maven автоматически разрешает транзитивные зависимости, предоставляя готовый к использованию поисковый движок всего несколькими строками в вашем pom.xml.
Как добавить зависимость GroupDocs Maven
Добавьте репозиторий и запись зависимости в ваш pom.xml, затем выполните mvn clean install; Maven скачает JAR groupdocs-search и требуемые библиотеки, сделав API доступным в проекте. После успешной сборки вы сможете сразу использовать классы com.groupdocs.search.
Конфигурация 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>
Совет: Следите за актуальностью номера версии, проверяя страницу официальных релизов.
Вы также можете скачать JAR напрямую с официального сайта: GroupDocs.Search for Java releases.
Зачем использовать поисковую сеть?
Поисковая сеть обеспечивает горизонтальное масштабирование за счёт разбиения индекса на шарды, размещённые на отдельных узлах. GroupDocs.Search поддерживает более 50 форматов ввода и обрабатывает документы со сотнями страниц без загрузки полного файла в память, обеспечивая ответы на запросы менее чем за секунду даже при росте объёма данных.
Требования
- JDK (11 или новее) установлен.
- IDE, например IntelliJ IDEA или Eclipse.
- Базовые знания Java, знакомство с Maven и понимание концепций сетевых узлов.
- Действующая лицензия GroupDocs.Search (бесплатная пробная или коммерческая).
Базовая инициализация и настройка
Начните с создания каталога индекса:
import com.groupdocs.search.SearchIndex;
import com.groupdocs.search.options.IndexingOptions;
// Create an index in the specified directory
SearchIndex index = new SearchIndex("YOUR_INDEX_DIRECTORY");
Этот простой шаг подготавливает окружение для последующей настройки сети.
Руководство по реализации
Функция 1: Конфигурация поисковой сети
Обзор
Настройка поисковой сети задаёт пути к файлам и порты, которые узлы будут использовать для связи.
Настройка путей и портов
Configuration — класс, содержащий сетевые пути, порты и другие параметры кластера поиска.
import com.groupdocs.search.options.*;
import com.groupdocs.search.scaling.configuring.ConfiguringSearchNetwork;
// Set custom paths for input/output directories
String basePath = "YOUR_DOCUMENT_DIRECTORY/AdvancedUsage/Scaling/SynchronizingShards/";
int basePort = 49144; // Adjust if there's a port conflict
Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
Объект configuration теперь содержит все необходимые настройки для вашей поисковой сети.
Функция 2: Развёртывание узлов поисковой сети
Обзор
Разворачивайте узлы, чтобы распределить рабочую нагрузку по сети. Главный узел управляет операциями и событиями.
Код развертывания
SearchNetworkNode представляет узел в поисковой сети, который может выступать в роли мастера или рабочего.
import com.groupdocs.search.scaling.*;
import com.groupdocs.search.options.Configuration;
SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);
// Retrieve the master node for further operations
SearchNetworkNode masterNode = nodes[0];
Функция 3: Подписка на события узлов поисковой сети
Обзор
Прослушивание событий позволяет динамически реагировать на изменения или обновления в сети.
Реализация подписки
SearchNetworkNodeEvents предоставляет хуки событий для жизненного цикла узла и действий индексации.
import com.groupdocs.search.scaling.SearchNetworkNode;
import com.groupdocs.search.scaling.SearchNetworkNodeEvents;
SearchNetworkNodeEvents.subscribe(masterNode);
Функция 4: Добавление каталогов в индекс
Обзор
Добавление каталогов — ключевой шаг, делающий ваши документы доступными для поиска.
Добавление документов
IndexingDocuments.addDirectories добавляет пути к папкам в индекс для обработки.
import com.groupdocs.search.indexing.IndexingDocuments;
import com.groupdocs.search.scaling.SearchNetworkNode;
IndexingDocuments.addDirectories(masterNode, "YOUR_DOCUMENT_DIRECTORY/DocumentsPath");
Функция 5: Синхронизация шардов в узле поисковой сети
Обзор
Синхронизация обеспечивает согласованность данных во всех шардах.
Код синхронизации
SynchronizeOptions настраивает способ синхронизации шардов между узлами.
import com.groupdocs.search.indexing.Indexer;
import com.groupdocs.search.scaling.SearchNetworkNode;
import com.groupdocs.search.options.SynchronizeOptions;
SearchNetworkNode node = null; // Assume 'node' is initialized as a SearchNetworkNode
def synchronizeShards(SearchNetworkNode node) {
Indexer indexer = node.getIndexer();
SynchronizeOptions options = new SynchronizeOptions();
indexer.synchronize(options);
}
Функция 6: Закрытие узлов поисковой сети
Обзор
Корректное закрытие узлов освобождает ресурсы и предотвращает утечки памяти.
Закрытие узла
close() освобождает ресурсы и завершает работу узла поисковой сети.
import com.groupdocs.search.scaling.SearchNetworkNode;
for (SearchNetworkNode node : nodes) {
node.close();
}
Практические применения
- Управление юридическими документами – Быстрый поиск дел и прецедентов.
- Ведение финансовой отчётности – Доступ к выпискам и аудиторским журналам за секунды.
- Академические исследования – Поиск по тысячам статей для нахождения релевантных цитат.
Соображения по производительности
- Оптимизация запросов – Пишите лаконичные запросы, чтобы сократить время отклика.
- Управление памятью – Следите за использованием кучи JVM; при больших индексах рассматривайте настройку GC.
- Стратегия масштабирования – Добавляйте узлы пропорционально объёму данных и нагрузке запросов.
Распространённые проблемы и решения
| Проблема | Причина | Решение |
|---|---|---|
| Узлы не могут подключиться | Конфликт портов | Измените basePort на свободное значение |
| Индекс не обновляется | Отсутствует подписка на события | Убедитесь, что вызван SearchNetworkNodeEvents.subscribe(masterNode) |
| Высокая задержка | Недостаточно шардов | Увеличьте количество узлов и сбалансируйте распределение документов |
Часто задаваемые вопросы
Q: Какова основная выгода от использования GroupDocs.Search?
A: Он обеспечивает быстрый, масштабируемый поиск по большим наборам документов с минимальной настройкой.
Q: Можно ли настраивать параметры узлов в поисковой сети?
A: Да, вы можете задавать пользовательские пути, порты и другие опции через объект Configuration.
Q: Как добавить каталоги в индекс после запуска сети?
A: Вызывайте IndexingDocuments.addDirectories(masterNode, "path") каждый раз, когда нужно проиндексировать новые папки.
Q: Как синхронизировать шарды, когда в сеть добавляется новый узел?
A: Используйте метод synchronizeShards, показанный выше, на только что добавленном узле.
Q: Нужна ли лицензия для разработки?
A: Для тестирования достаточно бесплатной пробной лицензии; для продакшена требуется коммерческая лицензия.
Заключение
Следуя этому руководству, вы теперь знаете, как добавить зависимость groupdocs Maven, настроить многопользовательскую поисковую сеть, индексировать каталоги и синхронизировать шарды. Эти шаги закладывают основу высокопроизводительного решения поиска документов, которое может расти вместе с потребностями вашей организации.
Последнее обновление: 2026-05-17
Тестировано с: GroupDocs.Search 25.4
Автор: GroupDocs