Настройка базового порта groupdocs в Java Search Network

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

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

  • Какова основная цель? Назначить уникальные порты и базовые каталоги для каждого поискового узла, устраняя конфликты.
  • Нужна ли лицензия? Да — для производственных развертываний требуется пробная или полная лицензия.
  • Какая версия Java поддерживается? Java 8 или выше (рекомендовано Java 11+).
  • Можно ли запускать это на облачных серверах? Абсолютно — просто откройте выбранные порты в группах безопасности вашего облака.
  • Сколько узлов можно добавить? Нет жёсткого ограничения; вы ограничены только аппаратными ресурсами и пропускной способностью сети.

Что такое «configure base port groupdocs»?

Configure base port groupdocs — процесс назначения начального TCP‑порта, который будет использовать каждый поисковый узел, с последующим увеличением для последующих узлов. Этот простой шаг устраняет неприятные ошибки «порт уже используется» и закладывает основу чистого, горизонтально масштабируемого поискового кластера, обеспечивая связь каждого узла через отдельную конечную точку.

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

GroupDocs.Search обеспечивает high‑performance indexing (до 50 ГБ/мин на стандартном 8‑ядерном сервере) и поддерживает 50+ file formats, включая PDF, DOCX, PPTX и HTML. Его модульная архитектура позволяет комбинировать индексаторы, поисковики, шарды и экстракторы между узлами, обеспечивая линейную масштабируемость при добавлении оборудования. Библиотека также предлагает встроенные варианты сжатия, которые уменьшают использование диска до 70 % при сохранении задержки запросов ниже 200 мс для типовых нагрузок.

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

  • Java Development Kit (JDK) 8 или новее (рекомендовано Java 11+ для лучшей сборки мусора).
  • IDE такая как IntelliJ IDEA или Eclipse.
  • GroupDocs.Search for Java библиотека (версия 25.4 или новее), установленная через Maven или ручную загрузку.
  • Базовые знания сетей (TCP‑порты, localhost vs. удалённые хосты).
  • Действительная лицензия GroupDocs.Search (пробная или полная).

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

Инструкции по установке

Настройка Maven:

<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 for Java releases.

Приобретение лицензии

  • Free Trial – начните тестировать сразу.
  • Temporary License – получите расширенную пробную версию по ссылке Temporary License.
  • Full Purchase – требуется для производственных развертываний.

Базовая инициализация и настройка

import com.groupdocs.search.options.*;
import com.groupdocs.search.scaling.configuring.*;

public class SearchNetworkSetup {
    public static void main(String[] args) {
        // Initialize GroupDocs.Search components here
    }
}

Руководство по реализации

Как настроить базовый порт groupdocs?

Чтобы настроить базовый порт, отредактируйте файл конфигурации сети или программно установите свойство basePort в высокое, неиспользуемое значение, например 49100. Для каждого последующего узла увеличивайте номер порта на один (или на фиксированный шаг), чтобы каждый узел привязывался к своему отдельному TCP‑конечному пункту, устраняя ошибки конфликтов портов и упрощая правила брандмауэра.

Настройка базовых путей

Прежде чем писать код, определите согласованную структуру папок. Например, создайте отдельные каталоги для индексаторов (Indexer0), поисковиков (Searcher0) и экстракторов (Extractor0). Такая структура позволяет каждому узлу быстро находить свои файлы.

  • Why: Предсказуемая иерархия каталогов предотвращает ошибки «файл не найден», когда узлы запускаются на разных машинах.

Настройка базового порта

Выберите высокий начальный порт, чтобы избежать конфликтов с общими сервисами (HTTP 80, SSH 22 и т.д.). Увеличивайте номер порта для каждого нового добавляемого узла.

// If an error occurs about using a busy network port, change the value of the base port
int basePort = 49100;
  • Why: Начало с высокого порта (например, 49100) снижает вероятность конфликтов с существующими сервисами и упрощает создание правил брандмауэра.

Определение адреса хоста

Во время разработки localhost работает нормально. Для продакшна замените его IP‑адресом сервера или DNS‑именем, чтобы удалённые узлы могли связываться друг с другом.

// Define the host address
dataAddress = "127.0.0.1";
  • Why: Использование реального адреса хоста обеспечивает межмашинную коммуникацию, что важно для облачных или локальных кластеров.

Создание сетевой конфигурации

Класс NetworkConfig объединяет все сетевые параметры — базовый порт, хост и опциональные настройки SSL — в один объект, который использует поисковый движок.

Configuration configuration = new Configurator()
    .setIndexSettings() // Begin setting index configurations
        .setUseStopWords(false) // Disable stop words in indexing
        .setUseCharacterReplacements(false) // Disable character replacements
        .setTextStorageSettings(true, Compression.High) // Enable high compression for text storage
        .setIndexType(IndexType.NormalIndex) // Set index type to NormalIndex
        .setSearchThreads(NumberOfThreads.Default) // Use default number of search threads
    .completeIndexSettings() // Complete setting index configurations
  • Why: Централизация этих параметров делает конфигурацию переиспользуемой и упрощает её поддержку на множестве узлов.

Добавление узлов

SearchNode представляет отдельный узел в кластере GroupDocs.Search, выполняющий конкретную функцию, такую как индексация или поиск. Создайте экземпляр SearchNode для каждой роли (индексатор, поисковик, экстрактор) и зарегистрируйте его в SearchEngine. Распределение обязанностей между узлами повышает параллелизм и отказоустойчивость.

// Add the first node (indexer and searcher)
    .addNode(0) // Start adding node 0
        .setTcpEndpoint(dataAddress, basePort) // Set TCP endpoint for node 0
        .addLogSink() // Add log sink to node 0
        .addIndexer("YOUR_DOCUMENT_DIRECTORY/Indexer0") // Specify index path for node 0
        .addSearcher("YOUR_DOCUMENT_DIRECTORY/Searcher0") // Specify searcher path for node 0
    .completeNode() // Complete adding node 0

// Add the second node (shard and extractor)
    .addNode(1) // Start adding node 1
        .setTcpEndpoint(dataAddress, basePort + 1) // Set TCP endpoint for node 1
        .addShard("YOUR_DOCUMENT_DIRECTORY/Shard1") // Specify shard path for node 1
        .addExtractor("YOUR_DOCUMENT_DIRECTORY/Extractor1") // Specify extractor path for node 1
    .completeNode() // Complete adding node 1
  • Why: Разделение работы между выделенными узлами уменьшает конкуренцию за ресурсы и позволяет каждой машине специализироваться на одной задаче, повышая общую пропускную способность.

Завершение конфигурации

После добавления всех узлов вызовите engine.start(), чтобы запустить сеть. Движок автоматически привяжет каждый узел к назначенному порту и проверит соединение.

.completeConfiguration(); // Finalize the configuration setup
return configuration; // Return the configured network settings

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

  • Port Conflicts – Всегда увеличивайте basePort для каждого нового узла. Проверяйте открытые порты с помощью netstat или сетевого монитора вашей ОС.
  • Missing Directories – Убедитесь, что каждая папка (Indexer0, Searcher0 и т.д.) существует и процесс Java имеет права чтения/записи.
  • Network Reachability – При переходе к многомашинной конфигурации замените 127.0.0.1 на реальный IP хоста и откройте выбранные порты в брандмауэрах.

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

СценарийПреимущество настройки базового порта groupdocs
Корпоративное управление документамиБесшовное масштабирование между отделами без простоя
Крупные CMS‑платформыБолее быстрый поиск контента благодаря распределённому индексу
Управление юридическими деламиПараллельное извлечение PDF‑файлов уменьшает задержку поиска

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

  • Monitor CPU/Memory – Используйте JMX Java или инструмент профилирования для наблюдения за использованием потоков.
  • Adjust Compression – Compression.High экономит место на диске, но может увеличить нагрузку на CPU; протестируйте оба режима High и Normal, чтобы найти оптимальный баланс.
  • Regular Updates – Новые релизы GroupDocs.Search часто включают патчи производительности; поддерживайте библиотеку в актуальном состоянии.

Заключение

Теперь вы знаете, как configure base port groupdocs и настроить многопользовательскую поисковую сеть с использованием GroupDocs.Search для Java. Экспериментируйте с дополнительными узлами, тонко настраивайте параметры индекса и интегрируйте сеть в существующие приложения для действительно масштабируемого поискового решения.

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

Q: Какова цель отключения стоп-слов при индексации?
A: Отключение стоп-слов может повысить точность поиска, сохраняя общие термины, которые могут быть критичны в специализированных областях.

Q: Как справиться с конфликтами портов при добавлении нескольких узлов?
A: Начните с высокого basePort (например, 49100) и увеличивайте его для каждого последующего узла, гарантируя, что каждый узел имеет уникальную TCP‑конечную точку.

Q: Можно ли использовать эту настройку для облачных приложений?
A: Да — просто убедитесь, что выбранные порты открыты в группах безопасности вашего облака, и замените 127.0.0.1 на соответствующий публичный или приватный IP.

Q: В чём разница между NormalIndex и другими типами индексов?
A: NormalIndex обеспечивает сбалансированное соотношение скорости и использования памяти, тогда как специализированные индексы (например, FastIndex) ориентированы на узкоспециализированные сценарии производительности.

Q: Есть ли ограничение на количество узлов, которые я могу добавить?
A: Технически нет; ограничение определяется вашими аппаратными ресурсами и пропускной способностью сети.


Last Updated: 2026-05-17
Tested With: GroupDocs.Search Java 25.4
Author: GroupDocs

// Define the base paths using placeholders
dataPath = "YOUR_DOCUMENT_DIRECTORY/AdvancedUsage/Scaling/ConfiguringSearchNetwork/";

Связанные руководства