Как настроить поиск с 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
}
}
}
- Управление шардами: Эффективно обрабатывает большие наборы данных, распределяя документы по шартам.
Практическое применение
- Корпоративное управление документами: Централизованный поиск по миллионам файлов.
- Юридические фирмы: Быстро находить юридические дела, контракты и доказательства.
- Академические исследования: Индексировать журналы и статьи для мгновенного доступа.
Вопросы производительности
- Оптимизировать индексацию: Планировать регулярные обновления индекса и удалять устаревшие данные.
- Управление памятью: Следить за кучей 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