Comment configurer le réseau de recherche GroupDocs pour Java

Dans l’environnement numérique actuel en évolution rapide, les compétences configure groupdocs search network sont essentielles pour toute organisation qui doit rechercher rapidement et de manière fiable parmi des millions de documents. Un réseau de recherche bien configuré répartit les charges d’indexation et de requêtes sur plusieurs nœuds JVM, maintient des temps de réponse faibles et garantit une haute disponibilité. Ce tutoriel vous guide à chaque étape — de la configuration Maven et de l’activation de licence au déploiement des nœuds, à l’abonnement aux événements, à l’indexation des documents et même à la recherche d’images — afin que vous puissiez créer un réseau GroupDocs.Search prêt pour la production en Java.

Réponses rapides

  • Quel est le but principal d’un réseau de recherche ? Distribuer la charge d’indexation et de requêtes sur plusieurs nœuds pour une meilleure évolutivité et fiabilité.
  • Quel port GroupDocs.Search utilise-t-il par défaut ? L’exemple utilise le port 49120, mais vous pouvez choisir n’importe quel port libre.
  • Puis-je ajouter ou supprimer des nœuds sans interruption ? Oui — les nœuds peuvent être déployés ou retirés dynamiquement.
  • Ai-je besoin d’une licence pour la production ? Une licence complète est requise pour une utilisation en production ; des licences d’essai sont disponibles pour l’évaluation.
  • La recherche d’images est-elle prise en charge immédiatement ? Oui — GroupDocs.Search fournit une comparaison de hachage d’image intégrée.

Qu’est‑ce qu’un réseau de recherche ?

Un SearchNetworkNode est un nœud individuel du cluster qui héberge une copie de l’index partagé et traite les requêtes de recherche. Un search network est un ensemble d’instances SearchNetworkNode interconnectées qui partagent les informations d’indexation et répondent aux requêtes de façon collaborative. Cette architecture vous permet de gérer d’énormes collections de documents tout en maintenant des temps de réponse faibles, et elle active le basculement automatique si un nœud devient indisponible.

Pourquoi utiliser GroupDocs.Search pour Java ?

Chargez votre application Java avec un moteur de recherche qui peut configure groupdocs search network en quelques minutes, s’étendre horizontalement et prendre en charge plus de 30 formats de fichiers — y compris PDF, DOCX, XLSX, PPTX et les types d’images courants. Les benchmarks montrent qu’un cluster de trois nœuds peut indexer 500 000 documents en moins de 30 minutes sur du matériel serveur standard, tandis que la latence des requêtes reste inférieure à 200 ms même sous une charge concurrente élevée.

Prérequis

  • JDK 8+ installé sur chaque machine qui exécutera un nœud.
  • Un IDE tel que IntelliJ IDEA ou Eclipse pour une gestion de projet simplifiée.
  • Maven pour la résolution des dépendances.
  • Connaissances de base du réseau Java (ports TCP, pare-feu) et des concepts de multithreading.

Bibliothèques et dépendances requises

Ajoutez le dépôt GroupDocs et la dépendance à votre 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>

Sinon, téléchargez la dernière version depuis GroupDocs.Search for Java releases.

Configuration de GroupDocs.Search pour Java

Installation via Maven

Le fragment Maven ci‑dessus récupère la bibliothèque dans votre projet automatiquement.

Acquisition de licence

  • Free Trial – explorez les fonctionnalités de base sans carte de crédit.
  • Temporary License – période de test prolongée pour les pilotes internes.
  • Full License – prête pour la production, utilisation illimitée et support prioritaire.

Initialisation et configuration de base

La classe SearchNetworkDeployment orchestre la création et la gestion du cluster de recherche, en gérant le cycle de vie des nœuds et les ressources partagées. Avant de pouvoir interagir avec un nœud, vous devez créer un objet SearchNetworkDeployment et le pointer vers un dossier d’index partagé. Le bloc de code suivant (conservé du tutoriel original) montre le bootstrap minimal :

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.");
    }
}

Guide d’implémentation

Nous allons maintenant examiner chaque tâche principale, en utilisant des explications claires, étape par étape, qui précèdent les espaces réservés de code originaux.

Comment déployer des nœuds dans un réseau de recherche

Déployer plusieurs nœuds répartit la charge de travail et améliore la tolérance aux pannes. Un SearchNetworkNode représente une instance JVM individuelle qui participe au cluster de recherche, en gérant les requêtes d’indexation et de recherche. En lançant plusieurs nœuds sur des ports consécutifs, vous créez un réseau résilient où chaque nœud peut servir les appels clients et partager l’index commun.

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.");
    }
}

Comment s’abonner aux événements

L’abonnement aux événements vous donne une visibilité en temps réel sur la santé des nœuds, la progression de l’indexation et les erreurs. La classe SearchNetworkEvents fournit un ensemble de callbacks déclenchés pour des actions importantes telles que la fin d’indexation, les pannes de nœuds ou des notifications personnalisées. Enregistrant des écouteurs sur les nœuds maîtres ou travailleurs, vous activez une surveillance en temps réel et des réponses automatisées pour maintenir le réseau en bon état de fonctionnement.

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.");
    }
}

Comment indexer des documents

Une indexation efficace est la colonne vertébrale de résultats de recherche rapides. Lorsque vous ajoutez des répertoires au nœud maître, le moteur analyse chaque fichier, extrait le contenu indexable et le stocke dans la structure d’index partagé. Ce processus peut s’exécuter de façon incrémentielle, ne mettant à jour que les fichiers modifiés, ce qui réduit la charge I/O et garantit que les requêtes reflètent toujours les dernières versions des documents.

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.");
    }
}

Comment effectuer une recherche d’images

GroupDocs.Search prend en charge la comparaison de hachage d’image, vous permettant de localiser des actifs visuellement similaires. La classe SearchImage encapsule un fichier image et calcule un hachage perceptuel qui peut être comparé aux hachages stockés dans l’index. En spécifiant une différence de hachage maximale, vous contrôlez la tolérance de similarité visuelle, permettant une découverte fiable de duplicatas ou d’images liées dans le référentiel.

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);
    }
}

Comment configurer les ports réseau

Si votre environnement utilise déjà le port 49120, vous pouvez le changer pour n’importe quel port TCP libre. Le paramètre basePort détermine le numéro de port de départ du cluster, et chaque nœud suivant incrémente automatiquement cette valeur. Assurez‑vous que le port choisi est ouvert dans votre pare‑feu, n’est pas occupé par d’autres services, et est configuré de façon cohérente sur tous les nœuds afin de maintenir une communication fluide.

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

Problèmes courants et dépannage

SymptomLikely CauseFix
Les nœuds ne démarrent pasConflit de portChoisissez un autre basePort et mettez à jour les règles du pare‑feu.
L’indexation est lenteBande passante I/O insuffisanteUtilisez un stockage SSD et activez l’indexation incrémentielle.
L’abonnement aux événements ne se déclenche pasEnregistrement du gestionnaire d’événement manquantAssurez‑vous que SearchNetworkEvents.subscribe(node) est appelé avant le début de toute indexation.
La recherche d’images ne renvoie aucun résultatDifférence de hachage trop faibleAugmentez la différence de hachage autorisée (par ex., de 4 à 8).

Questions fréquemment posées

Q : Comment optimiser les performances d’indexation dans un réseau GroupDocs.Search ?
R : Utilisez l’indexation incrémentielle, stockez l’index sur des SSD rapides et allouez suffisamment de mémoire heap pour la JVM.

Q : Puis‑je ajouter ou supprimer des nœuds sans redémarrer l’ensemble du réseau de recherche ?
R : Oui — les nœuds peuvent être déployés ou retirés dynamiquement. Après avoir ajouté un nœud, invoquez SearchNetworkDeployment.deploy à nouveau pour rafraîchir la vue du cluster.

Q : En quoi l’abonnement aux événements améliore‑t‑il la gestion du réseau ?
R : Les événements abonnés fournissent des alertes en temps réel sur les changements d’état des nœuds, la progression de l’indexation et les erreurs, permettant un dépannage proactif.

Q : Est‑il possible de rechercher différents formats de documents simultanément ?
R : Absolument. GroupDocs.Search prend en charge les PDF, Word, Excel, PowerPoint, les images et de nombreux autres formats dans une seule requête.

Q : Quelle est la sécurité des données dans un réseau GroupDocs.Search ?
R : La sécurité dépend de votre infrastructure. Implémentez SSL/TLS pour la communication entre nœuds, restreignez l’accès réseau et suivez les meilleures pratiques de protection des données.

Dernière mise à jour : 2026-06-27
Testé avec : GroupDocs.Search 25.4 for Java
Auteur : GroupDocs

Tutoriels associés