Créer un index de recherche Java – Déployer GroupDocs.Search pour Java
Dans le monde actuel axé sur les données, créer un index de recherche java les applications doivent gérer d’importantes collections de documents de manière efficace. Que vous construisiez un service de recherche d’entreprise ou un projet plus modeste, 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 pour 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.
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
addFilesetaddDirectoriespour ingérer le contenu. - Quelle version de Java est requise ? Java 8 ou supérieur, avec Maven pour la gestion des dépendances.
Qu’est‑ce que le “create searchable index java” ?
Créer un index de recherche en Java signifie 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 se charge du travail lourd, 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éployez plusieurs nœuds qui partagent la charge d’indexation.
- Prise en charge riche des formats de documents – PDF, Word, Excel, PowerPoint, images, et plus encore.
- Mises à jour événementielles – Abonnez‑vous aux événements du nœud pour garder l’index à jour en temps réel.
- Intégration Maven simple – Ajoutez quelques lignes à
pom.xmlet commencez l’indexation.
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 pour 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‑la 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 searchable index java avec GroupDocs.Search ?
Ci‑dessous, nous détaillons les fonctionnalités essentielles dont vous aurez besoin pour add files to search et add directories to node, 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 les 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 create a searchable index java qui s’étend horizontalement.
Fonctionnalité 3 – Abonnement 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 la ré‑indexation lorsqu’un nouveau fichier arrive.
Fonctionnalité 4 – Ajout de répertoires au nœud du réseau
Utilisez cet assistant pour add directories to node, 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, add files to search 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.
Problèmes courants & solutions
| Problème | Raison | Solution |
|---|---|---|
| Aucun document n’apparaît dans les résultats de recherche | Index non engagé | Appelez node.getIndexer().commit() après l’ajout des fichiers. |
| Erreur de conflit de port | Un autre service utilise basePort | Choisissez un basePort différent ou vérifiez les ports libres. |
| Format de fichier non pris en charge | La bibliothèque ne possède pas d’analyseur | Assurez‑vous que l’extension du fichier est prise en charge ou ajoutez un extracteur personnalisé. |
Questions fréquentes
Q : Puis‑je utiliser GroupDocs.Search dans 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 contrainte stricte.
Q : Dois‑je redémarrer les nœuds après avoir ajouté de nouveaux fichiers ?
R : Non. L’ajout de fichiers déclenche automatiquement l’indexation ; vous n’avez besoin de valider que si vous différez 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.
Dernière mise à jour : 2025-12-26
Testé avec : GroupDocs.Search pour Java 25.4
Auteur : GroupDocs