.

Now produce final content.# Créer un index de recherche Java – Déployer GroupDocs.Search pour Java

Dans le monde actuel axé sur les données, les applications créer un index de recherche java doivent gérer efficacement d’énormes collections de documents. Que vous construisiez un service de recherche de niveau entreprise ou un projet plus petit, un réseau de recherche bien configuré peut améliorer considérablement la vitesse de récupération et la pertinence. Dans ce guide, nous parcourrons l’ensemble du processus d’installation de GroupDocs.Search for Java, de l’ajout de fichiers à la recherche à l’ajout de répertoires au nœud, afin que vous puissiez commencer à indexer vos documents immédiatement.

Pourquoi c’est important : Un index de recherche réduit la latence des requêtes de secondes à millisecondes, s’adapte à la croissance de vos données, et vous permet d’ajouter de puissantes capacités de recherche en texte intégral à toute solution basée sur Java — qu’il s’agisse d’un portail web, d’une application de bureau ou d’un microservice cloud.

Réponses rapides

  • Quel est le but principal de GroupDocs.Search ? Il fournit un moteur évolutif, basé sur Java, pour l’indexation et la recherche de documents sur un réseau distribué.
  • Quelle version devrais‑je utiliser ? La dernière version stable (par ex., 25.4) est recommandée pour les nouveaux projets.
  • Ai‑je besoin d’une licence ? Un essai gratuit de 30 jours est disponible ; une licence permanente est requise pour une utilisation en production.
  • Puis‑je ajouter à la fois des fichiers et des répertoires entiers ? Oui – utilisez les assistants addFiles et addDirectories pour ingérer le contenu.
  • Quelle version de Java est requise ? Java 8 ou supérieure, avec Maven pour la gestion des dépendances.
  • Comment fonctionne l’indexation en temps réel java ? En vous abonnant aux événements du nœud, vous pouvez déclencher un ré‑indexage automatique lorsque les fichiers changent.

Qu’est‑ce que “créer un index de recherche java” ?

Créer un index de recherche en Java consiste à construire une structure de données qui associe les termes aux documents les contenant, permettant des requêtes en texte intégral rapides. GroupDocs.Search abstrait la partie lourde, vous laissant vous concentrer sur l’alimentation des documents et le réglage du comportement de recherche.

Pourquoi utiliser GroupDocs.Search pour Java ?

  • Architecture réseau évolutive – Déployer plusieurs nœuds qui partagent la charge d’indexation.
  • Prise en charge riche des formats de documents – PDF, Word, Excel, PowerPoint, images, et plus.
  • Mises à jour basées sur les événements – S’abonner aux événements du nœud pour garder l’index à jour en temps réel.
  • Intégration Maven simple – Ajouter quelques lignes à pom.xml et commencer l’indexation.

Indexation en temps réel java avec GroupDocs.Search

GroupDocs.Search déclenche des événements chaque fois qu’un fichier est ajouté, mis à jour ou supprimé. En gérant ces événements, vous pouvez appeler automatiquement addFiles ou addDirectories, garantissant que l’index reste synchronisé sans intervention manuelle. Cette approche est idéale pour les systèmes de gestion de documents, les portails de contenu et toute application où les données changent fréquemment.

Prérequis

  • JDK 8+ installé sur votre machine de développement.
  • Un IDE tel que IntelliJ IDEA ou Eclipse.
  • Connaissances de base en Java et Maven.
  • Accès à la bibliothèque GroupDocs.Search for Java (téléchargement ou Maven).

Configuration de GroupDocs.Search pour Java

Dépendance Maven

Ajoutez le dépôt 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>

Astuce : Gardez le numéro de version à jour en consultant la page officielle des versions.

Vous pouvez également télécharger le JAR directement depuis le site officiel : versions de GroupDocs.Search pour Java.

Acquisition de licence

  • Essai gratuit : évaluation de 30 jours.
  • Licence temporaire : demandez pour des tests prolongés.
  • Achat : requis pour les déploiements en production.

Initialisation de base

Créez un objet de configuration qui pointe vers un dossier où les fichiers d’index seront stockés et définit le port de communication de base :

import com.groupdocs.search.Configuration;

class InitializeSearch {
    public static void main(String[] args) {
        String basePath = "your/base/path";
        int basePort = 8080;
        
        Configuration config = new ConfiguringSearchNetwork().configure(basePath, basePort);
        // Use this configuration for subsequent operations
    }
}

Comment créer un index de recherche java avec GroupDocs.Search ?

Ci‑dessous, nous détaillons les fonctionnalités principales dont vous aurez besoin pour ajouter des fichiers à la recherche et ajouter des répertoires au nœud, tout en déployant un réseau évolutif.

Fonctionnalité 1 – Configuration et mise en place du réseau

Configurer le réseau de recherche est la première étape pour construire un index de recherche.

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

class ConfiguringSearchNetwork {
    public static Configuration configure(String basePath, int basePort) {
        // Configure the search network with specified base path and port
        return new Configuration(basePath, basePort);
    }
}
  • basePath – Répertoire où les données d’index seront persistées.
  • basePort – Port de départ ; chaque nœud incrémentera à partir de cette valeur.

Fonctionnalité 2 – Déploiement des nœuds du réseau de recherche

Déployer des nœuds répartit la charge d’indexation sur plusieurs machines ou processus.

import com.groupdocs.search.scaling.*;

class SearchNetworkDeployment {
    public static SearchNetworkNode[] deploy(String basePath, int basePort, Configuration configuration) {
        // Deploy nodes based on the provided configuration
        return new SearchNetworkNode[]{new SearchNetworkNode()};
    }
}

Chaque SearchNetworkNode exécute son propre service d’indexation, vous permettant de créer un index de recherche java qui s’étend horizontalement.

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

Les mises à jour en temps réel maintiennent l’index synchronisé avec les changements du système de fichiers.

import com.groupdocs.search.scaling.*;

class SearchNetworkNodeEvents {
    public static void subscribe(SearchNetworkNode node) {
        // Logic to subscribe to the specified node's events
    }
}

En écoutant les événements, vous pouvez déclencher automatiquement le ré‑indexage lorsque de nouveaux fichiers arrivent.

Fonctionnalité 4 – Ajout de répertoires au nœud du réseau

Utilisez cet assistant pour ajouter des répertoires au nœud, en collectant récursivement tous les documents pris en charge.

import java.io.File;
import java.util.ArrayList;

class DirectoryAdder {
    public static void addDirectories(SearchNetworkNode node, String... directoryPaths) {
        ArrayList<String> files = new ArrayList<>();
        for (String directoryPath : directoryPaths) {
            final File folder = new File(directoryPath);
            listFiles(folder, files);
        }
        addFiles(node, files.toArray(new String[0]));
    }

    private static void listFiles(final File folder, ArrayList<String> list) {
        for (final File fileEntry : folder.listFiles()) {
            if (fileEntry.isDirectory()) {
                listFiles(fileEntry, list);
            } else {
                list.add(fileEntry.getPath());
            }
        }
    }
}

Fonctionnalité 5 – Ajout de fichiers au nœud du réseau

Lorsque vous avez besoin d’un contrôle fin, ajoutez des fichiers à la recherche individuellement :

import com.groupdocs.search.Document;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
import org.apache.commons.io.FilenameUtils;
import com.groupdocs.search.Indexer;
import com.groupdocs.search.options.*;

class FileAdder {
    public static void addFiles(SearchNetworkNode node, String... filePaths) {
        try {
            InputStream[] streams = new FileInputStream[filePaths.length];
            Document[] documents = new Document[filePaths.length];
            for (int i = 0; i < filePaths.length; i++) {
                String filePath = filePaths[i];
                InputStream stream = new FileInputStream(filePath);
                streams[i] = stream;
                
                // Create a document from the input stream
                String fileName = FilenameUtils.getName(filePath);
                String extension = "." + FilenameUtils.getExtension(filePath);
                Document document = Document.createFromStream(
                    fileName,
                    new Date(),
                    extension,
                    stream);
                documents[i] = document;
            }

            // Initialize the indexer and configure options
            Indexer indexer = node.getIndexer();
            IndexingOptions options = new IndexingOptions();
            options.setUseRawTextExtraction(false);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Cette méthode vous offre la flexibilité d’indexer des fichiers provenant de flux, de stockage cloud ou d’emplacements temporaires.

Cas d’utilisation courants

  • Portails d’entreprise de documents qui nécessitent une recherche instantanée parmi des milliers de PDF et de fichiers Office.
  • Plateformes de e‑discovery juridique où de nouvelles preuves sont ajoutées en continu et doivent être recherchables en temps réel.
  • Systèmes de gestion de contenu qui stockent des images, des présentations et des feuilles de calcul et nécessitent une recherche en texte intégral.

Problèmes courants & solutions

ProblèmeRaisonSolution
Aucun document n’apparaît dans les résultats de rechercheIndex non engagéAppelez node.getIndexer().commit() après avoir ajouté des fichiers.
Erreur de conflit de portUn autre service utilise basePortChoisissez un autre basePort ou vérifiez les ports libres.
Format de fichier non pris en chargeLa bibliothèque ne possède pas d’analyseurAssurez‑vous que l’extension du fichier est prise en charge ou ajoutez un extracteur personnalisé.

Conseils de dépannage

  • Vérifier la santé du nœud : Utilisez le point de terminaison de vérification de santé intégré (http://localhost:{port}/health) pour confirmer que chaque nœud fonctionne.
  • Surveiller l’utilisation de la mémoire : De gros lots de documents peuvent augmenter la consommation de mémoire ; envisagez d’indexer par petits lots et d’appeler commit() périodiquement.
  • Vérifier les journaux : GroupDocs.Search écrit des journaux détaillés dans le dossier basePath — examinez‑les pour détecter des erreurs d’analyse ou des délais d’attente réseau.

Questions fréquemment posées

Q : Puis‑je utiliser GroupDocs.Search sur une application Java basée sur le cloud ?
R : Oui. La bibliothèque fonctionne avec n’importe quel runtime Java, et vous pouvez pointer le basePath vers un dossier monté en réseau ou un stockage cloud monté localement.

Q : Comment mettre à jour l’index lorsqu’un fichier change ?
R : Abonnez‑vous aux événements du nœud (voir Fonctionnalité 3) et appelez à nouveau addFiles ou addDirectories pour les chemins modifiés.

Q : Y a‑t‑il une limite au nombre de nœuds que je peux déployer ?
R : En pratique, la limite est définie par votre matériel et la bande passante du réseau. L’API elle‑même n’impose aucune restriction stricte.

Q : Dois‑je redémarrer les nœuds après avoir ajouté de nouveaux fichiers ?
R : Non. L’ajout de fichiers déclenche l’indexation automatiquement ; vous n’avez besoin de valider que si vous différerez l’opération.

Q : Quels formats de documents sont pris en charge nativement ?
R : PDF, DOC/DOCX, XLS/XLSX, PPT/PPTX, TXT, HTML et de nombreux types d’images. Consultez la documentation officielle pour la liste complète.

Q : Comment activer l’indexation en temps réel java pour un dossier qui reçoit des téléchargements en continu ?
R : Implémentez un observateur de système de fichiers (par ex., java.nio.file.WatchService) qui appelle DirectoryAdder.addDirectories(node, path) chaque fois qu’un nouveau fichier est détecté.


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