Construire un réseau de recherche évolutif – Indexer des documents avec GroupDocs.Java

Dans ce tutoriel, vous apprendrez comment ajouter des documents à l’index et construire un réseau de recherche évolutif avec GroupDocs.Search pour Java. Nous parcourrons la configuration d’un réseau de recherche, le déploiement des nœuds et la gestion des événements afin que votre application puisse traiter efficacement de grandes collections de documents sur plusieurs serveurs.

Réponses rapides

  • Que signifie « ajouter des documents à l’index » ? Cela signifie insérer des fichiers dans un index interrogeable afin qu’ils puissent être recherchés rapidement.
  • Quelle bibliothèque fournit cette fonctionnalité ? GroupDocs.Search pour Java.
  • Ai-je besoin d’une licence ? Une licence d’essai temporaire est disponible ; une licence commerciale est requise pour la production.
  • Puis-je mettre à l’échelle horizontalement ? Oui—en déployant plusieurs instances de SearchNetworkNode.
  • Quelle version de Java est requise ? JDK 8 ou supérieur.

Qu’est-ce que l’ajout de documents à l’index ?

Chargez vos fichiers sources (PDF, DOCX, PPTX, etc.) dans le moteur GroupDocs.Search, qui extrait le texte, construit des tables de fréquence des termes et les stocke dans un fichier d’index. L’index résultant permet des requêtes de mots‑clés en moins d’une seconde même sur des collections de plusieurs centaines de pages.

Pourquoi utiliser GroupDocs.Search pour Java dans un environnement en réseau ?

Distribuez les charges de travail d’indexation et de recherche sur plusieurs nœuds, réduisez la latence des requêtes en traitant près de la source de données, et ajoutez ou retirez des nœuds sans interruption. Cette architecture vous permet de rechercher sur plusieurs serveurs tout en maintenant une performance constante.

Prérequis

  • Java Development Kit (JDK) 8+ installé.
  • Maven pour la gestion des dépendances.
  • Familiarité de base avec Java et la structure d’un projet Maven.

Bibliothèques requises, versions et dépendances

Pour implémenter GroupDocs.Search pour Java, incluez ce qui suit dans votre projet 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>

Alternativement, téléchargez la dernière version depuis versions GroupDocs.Search pour Java. Vous pouvez également trouver les versions à versions GroupDocs Search Java.

Exigences de configuration de l’environnement

  • JDK 8 ou supérieur installé sur votre système.
  • Maven installé et configuré si vous utilisez un projet Maven.

Prérequis de connaissances

  • Compréhension de base de la programmation Java.
  • Familiarité avec la gestion des dépendances dans Maven.

Configuration de GroupDocs.Search pour Java

  1. Configuration Maven : Ajoutez le référentiel et la dépendance comme indiqué ci-dessus dans votre fichier pom.xml.
  2. Téléchargement direct : Alternativement, téléchargez la bibliothèque depuis versions GroupDocs Search Java.

Acquisition de licence

  • Obtenez une licence d’essai gratuite ou temporaire en visitant le site Web GroupDocs.
  • Pour un accès complet et le support, envisagez d’acheter une licence commerciale.

Initialisation de base

Initialisez GroupDocs.Search dans votre application Java :

import com.groupdocs.search.*;

public class SearchSetup {
    public static void main(String[] args) {
        // Initialize an index
        Index index = new Index("path/to/index/directory");

        // Add documents to the index
        index.add("path/to/documents");
        
        System.out.println("GroupDocs.Search setup complete.");
    }
}

Comment ajouter des documents à l’index dans un réseau de recherche ?

Chargez vos documents via n’importe quel nœud du réseau ; le framework distribue automatiquement la charge d’indexation, équilibre la charge et met à jour l’index partagé en temps réel. Chaque nœud traite les fichiers qui lui sont assignés, extrait le texte et écrit les changements incrémentiels dans l’index central, garantissant que le contenu nouvellement ajouté devienne interrogeable sur tous les nœuds presque instantanément.

Fonctionnalité 1 : Configurer le réseau de recherche

Vue d’ensemble

Configurer un réseau de recherche implique de mettre en place des nœuds pour gérer et distribuer les tâches de recherche efficacement.

Étape 1 : Définir le chemin de base et le port

La classe SearchNetworkNode représente un nœud unique qui participe à l’index distribué.

String basePath = "YOUR_DOCUMENT_DIRECTORY/AdvancedUsage/Scaling/SearchNetworkNodeEvents/";
int basePort = 49140; // Change if necessary due to busy port issues
Étape 2 : Configurer le réseau

NetworkConfiguration contient les paramètres communs (chemin de base, ports, facteur de réplication) que chaque nœud lit au démarrage.

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

Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);

Fonctionnalité 2 : Déployer les nœuds du réseau de recherche

Vue d’ensemble

Déployez des nœuds pour distribuer et gérer les opérations de recherche sur votre réseau.

Étape 1 : Déployer les nœuds à l’aide de la configuration

Les instances de SearchNetworkNode sont démarrées avec le même fichier de configuration, leur permettant de se découvrir mutuellement via la plage de ports de base définie.

import com.groupdocs.search.scaling.*;

SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);

Fonctionnalité 3 : S’abonner aux événements du nœud

Vue d’ensemble

S’abonner aux événements du nœud vous permet de surveiller et de répondre à diverses actions au sein du réseau de recherche.

Étape 1 : Définir la méthode d’abonnement

NodeEventListener est une interface que vous implémentez pour recevoir des rappels concernant la progression de l’indexation, les erreurs et les changements d’état du nœud.

import com.groupdocs.search.events.*;
import com.groupdocs.search.scaling.events.*;

public static void subscribe(SearchNetworkNode node) {
    // Subscribe to IndexingCompleted event
    node.getEvents().IndexingCompleted.add(new EventHandler() {
        @Override
        public void invoke(Object s, EventArgs e) {
            System.out.println("Indexing completed.");
        }
    });

    // Additional events can be subscribed similarly...
}
Étape 2 : Utiliser la méthode d’abonnement

Enregistrez votre écouteur avec chaque nœud afin d’obtenir des retours en temps réel pendant les opérations de traitement par lots importantes.

SearchNetworkNode masterNode = nodes[0];
subscribe(masterNode);

Fermer les nœuds

Arrêtez toujours les nœuds correctement pour vider les écritures en attente et libérer les sockets réseau.

for (SearchNetworkNode node : nodes) {
    node.close();
}

Applications pratiques

  1. Solutions de recherche d’entreprise – Implémentez un réseau de recherche pour gérer des recherches de documents à grande échelle sur plusieurs serveurs.
  2. Plateformes de commerce électronique – Améliorez les capacités de recherche de produits en répartissant les tâches d’indexation sur plusieurs nœuds.
  3. Systèmes de gestion de contenu (CMS) – Améliorez les performances de récupération et de mise à jour du contenu dans les environnements CMS.

Considérations de performance

  • Optimisez le déploiement des nœuds en fonction des ressources de votre système.
  • Surveillez régulièrement l’utilisation de la mémoire pour éviter les fuites, surtout lors du traitement de grands ensembles de données.
  • Utilisez les paramètres de configuration pour affiner les opérations d’indexation et de recherche afin d’améliorer l’efficacité.

Problèmes courants et solutions

ProblèmeCause typiqueSolution
Conflits de portsbasePort déjà utiliséModifiez basePort avec un numéro disponible
Nœud inaccessiblePare-feu ou règles réseauOuvrez les ports requis et vérifiez la connectivité
Index non mis à jourChemin de document incorrectVérifiez que basePath pointe vers le bon répertoire
Utilisation élevée de la mémoireIndexation par lots volumineuxIndexez les documents par lots plus petits ou augmentez la taille du tas

Questions fréquemment posées

Q : Comment gérer les conflits de ports lors du déploiement des nœuds ?
R : Modifiez la variable basePort dans votre code de configuration avec un port disponible.

Q : GroupDocs.Search peut-il être utilisé pour l’indexation en temps réel ?
R : Oui, il prend en charge l’indexation en temps réel avec des configurations appropriées.

Q : Quels sont les problèmes courants lors du déploiement des nœuds ?
R : La connectivité réseau et les paramètres de chemin incorrects sont des causes fréquentes. Assurez‑vous que tous les chemins et ports sont correctement configurés.

Q : Est‑il possible d’ajouter des documents à l’index après le démarrage du réseau ?
R : Absolument. Vous pouvez appeler index.add(...) sur n’importe quel nœud, et le réseau distribuera automatiquement la nouvelle charge de travail.

Q : Ai‑je besoin d’une licence pour les tests de développement ?
R : Une licence d’essai temporaire suffit pour les tests ; une licence commerciale est requise pour la mise en production.

Ressources

En suivant ce guide, vous pouvez efficacement ajouter des documents à l’index et gérer un réseau de recherche évolutif robuste en utilisant GroupDocs.Search pour Java. Bon codage !


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

Tutoriels associés