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

Введение

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

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

  • Какова основная цель поисковой сети? Распределять нагрузку индексации и запросов между несколькими узлами для лучшей масштабируемости и надёжности.
  • Какой порт использует GroupDocs.Search по умолчанию? В примере используется порт 49120, но вы можете выбрать любой свободный порт.
  • Можно ли добавлять или удалять узлы без простоя? лицензия для продакшн?** Для использования в продакшн требуется полная лицензия; пробные лицензии доступны для оценки.
  • Поддерживается ли поиск по изображениям из коробки? Да — GroupDocs.Search предоставляет встроенное сравнение хешей изображений.

Что такое поис сеть — это набор взаимосвязанных экземпляров SearchNetworkNode, которые совместно используют информацию об индексации и отвечают на запросы. Такая архитектура позволяет работать с огромными коллекциями документов, сохраняя низкое время отклика.

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

  • Масштабируемость: индексация и обработка запросов снижают задержку.
  • **Гибкость Office‑файлы и поиск по изображениям. Базовые знания Java и сетевых концепций.

Требуемые библиотеки и зависимости

Добавьте репозиторий GroupDocs и зависимость в ваш 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 for Java releases.

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

Установка через Maven

Приведённый выше фрагмент Maven автоматически добавляет библиотеку в ваш проект.

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

  • Free Trial — исследуйте основные функции.
  • Temporary License — расширенный период тестирования.
  • Full License — готова к продакшн, неограниченное использование.

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

import com.groupdocs.search.*;

public class SearchSetup {
    public static void main(String[] args) {
        // Create an instance of Index with the path to store index data.
        String indexPath = "path/to/index";
        Index index = new Index(indexPath);
        
        System.out.println("GroupDocs.Search initialized successfully.");
    }
}

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

Мы теперь подробно рассмотрим каждую основную задачу, используя понятные пошаговые фрагменты кода.

Как развернуть узлы в поисковой сети

Развёртывание нескольких узлов распределяет нагрузку и повышает отказоустойчивость.

public class SearchNetworkDeployment {
    public static void run() {
        String basePath = "YOUR_DOCUMENT_DIRECTORY";
        int basePort = 49120; // Change if necessary.
        Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);

        SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);
        
        System.out.println("Deployed " + nodes.length + " search network nodes.");
    }
}

Объяснение:

  • basePath указывает на папку, содержащую ваши документы.
  • basePort — это порт поисковой сети, на котором слушает каждый узел; измените его, чтобы избежать конфликтов.
  • Метод возвращает массив объектов SearchNetworkNode, представляющих каждый активный узел.

Как подписаться на события

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

public class NodeEventSubscription {
    public static void run() {
        String basePath = "YOUR_DOCUMENT_DIRECTORY";
        int basePort = 49120; // Adjust if needed.
        Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
        SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);

        SearchNetworkEvents.subscribe(nodes[0]);
        
        System.out.println("Subscribed to events for the master node.");
    }
}

Объяснение:

  • nodes[0] рассматривается как мастер‑узел; вы также можете подписаться на каждый рабочий узел отдельно.

Как индексировать документы

Эффективная индексация — основа быстрых результатов поиска.

public class DocumentIndexing {
    public static void run() {
        String basePath = "YOUR_DOCUMENT_DIRECTORY";
        int basePort = 49120; // Change if there is a conflict.
        Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
        SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);

        IndexingDocuments.addDirectories(nodes[0], "YOUR_DOCUMENT_DIRECTORY");
        
        System.out.println("Added directories to master node's index.");
    }
}

Объяснение:

  • addDirectories указывает мастер‑узлу, какие папки сканировать и индексировать.
  • После индексации все узлы могут выполнять запросы к общему индексу.

Как выполнить поиск по изображению

GroupDocs.Search поддерживает сравнение хешей изображений, позволяя находить визуально похожие ресурсы.

public class ImageSearch {
    public static void run() {
        String basePath = "YOUR_DOCUMENT_DIRECTORY";
        int basePort = 49120; // Modify if needed.
        Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
        SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);

        SearchImage searchImage = SearchImage.create("YOUR_DOCUMENT_DIRECTORY/ic_arrow_back_black_18dp.png");

        imageSearch(nodes[0], searchImage, 8);
    }
}

Объяснение:

  • SearchImage.create загружает эталонное изображение.
  • imageSearch выполняет запрос на выбранном узле, позволяя максимальную разницу хеша 8 (регулируйте для более строгих или более свободных совпадений).

Как настроить сетевые порты

Если в вашей среде уже используется порт 49120, вы можете изменить его на любой свободный TCP‑порт:

int customPort = 50000; // Example of a custom port.
Configuration configuration = ConfiguringSearchNetwork.configure(basePath, customPort);

Убедитесь, что выбранный порт открыт в вашем брандмауэре и не используется другими сервисами и их устранение

СимптомВероятная причинаРешение
Узлы не запускаютсяКонфликт портовВыберите другой basePort и обновите правила брандмауэра.
Индексация медленнаяНедостаточная пропускная способность ввода‑выводаИспользуйте SSD‑накопитель и включите инкрементальную индексацию.
Подписка на события не срабатываетОтсутствует регистрация обработчика событийУбедитесь, что SearchNetworkEvents.subscribe(node) вызывается до начала любой индексации.
Поиск по изображению не возвращает результатыРазница хеша слишком малаУвеличьте допустимую разницу хеша (например, с 4 до 8).

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

В: Как оптимизировать производительность индексации в сети GroupDocs.Search?
О: Используйте инкрементальную индексацию, храните индекс на быстрых SSD‑накопителях и выделяйте достаточный объём heap‑памяти для JVM.

В: Можно ли добавлять или удалять узлы без перезапуска всей поисковой сети?
О: Да — узлы могут динамически развертываться или выводиться из эксплуатации. После добавления узла вызовите SearchNetworkDeployment.deploy снова, чтобы обновить представление кластера.

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

В: Можно ли одновременно искать в разных форматах документов?
О: Конечно. GroupDocs.Search поддерживает PDF, Word, Excel, PowerPoint, изображения и многие другие форматы в одном запросе.

**В: Насколько безопас.Search
**