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