Optimiser les performances de recherche avec des techniques d’indexation avancées dans GroupDocs.Search pour Java
Dans l’environnement numérique actuel, rapide, optimiser les performances de recherche est essentiel pour fournir des résultats instantanés aux utilisateurs. Que vous construisiez un moteur de recherche personnalisé ou que vous amélioriez un système de gestion de documents existant, la bonne stratégie d’indexation peut réduire considérablement la latence et la consommation de ressources. Dans ce tutoriel, nous passerons en revue les fonctionnalités les plus puissantes de GroupDocs.Search pour Java — annulation, indexation asynchrone, multithreading et personnalisation des métadonnées — afin que vous puissiez add documents index plus rapidement et plus efficacement.
Ce que vous apprendrez
- Comment annuler une opération d’indexation après un temps spécifié
- Effectuer des opérations d’indexation asynchrones et gérer les changements d’état
- Configurer le multithreading pour une indexation plus rapide
- Personnaliser les options d’indexation des métadonnées
Assurons‑nous que vous avez tout ce dont vous avez besoin avant de plonger dans le code.
Prérequis
- GroupDocs.Search Library – version 25.4 ou ultérieure.
- Java Development Environment – JDK 8 ou supérieur est recommandé.
- Familiarité de base avec Java et le concept d’indexation.
Configuration de GroupDocs.Search pour Java
Installation Maven
Ajoutez le dépôt et la dépendance à votre fichier 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>
Téléchargement direct
Sinon, téléchargez le JAR le plus récent depuis GroupDocs.Search for Java releases.
License Acquisition – Commencez avec un essai gratuit ou demandez une licence temporaire pour débloquer l’ensemble complet des fonctionnalités.
Initialisation et configuration de base
import com.groupdocs.search.*;
public class IndexSetup {
public static void main(String[] args) {
String indexFolder = "YOUR_OUTPUT_DIRECTORY\\Index";
// Create an instance of the Index class
Index index = new Index(indexFolder);
System.out.println("Index created at: " + indexFolder);
}
}
Réponses rapides
- What does cancellation do? Arrête l’indexation après un temps défini pour libérer les ressources.
- Can I index documents asynchronously? Oui – définissez
options.setAsync(true). - How many threads can I use? Tout entier positif ; les valeurs typiques sont 2‑4 pour la plupart des serveurs.
- Is metadata indexing optional? Absolument – vous pouvez l’activer ou l’ajuster par champ.
- Do I need a license for these features? Un essai fonctionne pour les tests ; une licence complète est requise en production.
Qu’est‑ce que « Optimiser les performances de recherche » dans ce contexte ?
Optimiser les performances de recherche signifie configurer le processus d’indexation afin qu’il consomme la bonne quantité de CPU, de mémoire et de temps tout en livrant instantanément les résultats les plus pertinents. En contrôlant l’annulation, l’exécution asynchrone, le multithreading et la gestion des métadonnées, vous influencez directement la rapidité avec laquelle le moteur peut add documents index et répondre aux requêtes.
Pourquoi utiliser les fonctionnalités d’indexation avancées ?
- Latence réduite – L’indexation asynchrone et multithread garde votre application réactive.
- Meilleure gestion des ressources – L’annulation empêche les processus incontrôlés.
- Pertinence de recherche adaptée – Les options de métadonnées vous permettent de mettre en avant les informations les plus importantes.
Guide de mise en œuvre
Propriété d’annulation
Aperçu – Annulez l’indexation après une durée spécifiée pour éviter une surconsommation des ressources.
Étape 1 : Configurer l’environnement
import com.groupdocs.search.*;
import com.groupdocs.search.options.*;
String indexFolder = "YOUR_OUTPUT_DIRECTORY\\CancellationProperty";
String documentFolder = "YOUR_DOCUMENT_DIRECTORY";
Étape 2 : Créer les options d’indexation avec annulation
// Create an instance of Index and IndexingOptions
Index index = new Index(indexFolder);
IndexingOptions options = new IndexingOptions();
// Set a cancellation object
options.setCancellation(new Cancellation());
options.getCancellation().cancelAfter(3000);
// Add documents to the index with these options
index.add(documentFolder, options);
Points clés
setCancellation()active la fonctionnalité.cancelAfter(int milliseconds)définit le délai d’expiration (3 secondes dans cet exemple).
Propriété asynchrone
Aperçu – Exécutez l’indexation sur un thread d’arrière‑plan et écoutez les changements d’état.
Étape 1 : Configurer l’environnement
import com.groupdocs.search.*;
import com.groupdocs.search.events.*;
String indexFolder = "YOUR_OUTPUT_DIRECTORY\\IsAsyncProperty";
String documentFolder = "YOUR_DOCUMENT_DIRECTORY";
Étape 2 : S’abonner à l’événement StatusChanged
Index index = new Index(indexFolder);
// Subscribe to the status changed event
index.getEvents().StatusChanged.add(new EventHandler<BaseIndexEventArgs>() {
@Override
public void invoke(Object sender, BaseIndexEventArgs args) {
if (args.getStatus() == IndexStatus.Ready || args.getStatus() == IndexStatus.Failed) {
System.out.println("Operation completed with status: " + args.getStatus());
}
}
});
Étape 3 : Configurer les options asynchrones
IndexingOptions options = new IndexingOptions();
options.setAsync(true);
index.add(documentFolder, options);
Propriété des threads
Aperçu – Accélérez l’indexation en tirant parti de plusieurs cœurs CPU.
Étape 1 : Configurer l’environnement
import com.groupdocs.search.*;
import com.groupdocs.search.options.*;
String indexFolder = "YOUR_OUTPUT_DIRECTORY\\ThreadsProperty";
String documentFolder = "YOUR_DOCUMENT_DIRECTORY";
Étape 2 : Configurer le multithreading
Index index = new Index(indexFolder);
IndexingOptions options = new IndexingOptions();
// Specify 2 threads for the operation
options.setThreads(2);
index.add(documentFolder, options);
Propriété des options d’indexation des métadonnées
Aperçu – Ajustez finement quelles métadonnées de document sont indexées et comment elles sont stockées.
Étape 1 : Configurer l’environnement
import com.groupdocs.search.*;
import com.groupdocs.search.options.*;
String indexFolder = "YOUR_OUTPUT_DIRECTORY\\MetadataIndexingOptionsProperty";
String documentFolder = "YOUR_DOCUMENT_DIRECTORY";
Étape 2 : Configurer les options de métadonnées
Index index = new Index(indexFolder);
IndexingOptions options = new IndexingOptions();
// Customize metadata indexing options
options.getMetadataIndexingOptions().setDefaultFieldName("default");
options.getMetadataIndexingOptions().setSeparatorInCompoundName("\\");
options.getMetadataIndexingOptions().setMaxBytesToIndexField(10);
options.getMetadataIndexingOptions().setMaxIntsToIndexField(10);
options.getMetadataIndexingOptions().setMaxLongsToIndexField(10);
options.getMetadataIndexingOptions().setMaxDoublesToIndexField(10);
index.add(documentFolder, options);
Applications pratiques
- Systèmes de gestion de documents – Utilisez l’indexation asynchrone pour garder l’interface utilisateur réactive pendant le traitement de gros lots en arrière‑plan.
- Moteurs de recherche de contenu – Appliquez l’annulation pour empêcher les tâches longues de monopoliser les ressources serveur pendant les pics de trafic.
- Pipelines d’ingestion à grande échelle – Exploitez le multithreading pour add documents index à grande échelle, réduisant drastiquement le temps de traitement.
Considérations de performance
- Gestion des threads – Surveillez l’utilisation du CPU ; trop de threads peuvent entraîner un surcoût de commutation de contexte.
- Empreinte mémoire – Les limites de métadonnées (par ex.,
setMaxBytesToIndexField) aident à garder la consommation mémoire prévisible. - Garbage Collection – Utilisez les drapeaux JVM appropriés (
-Xmx,-XX:+UseG1GC) lors de l’indexation de corpus massifs.
Problèmes courants et solutions
| Symptôme | Cause probable | Solution |
|---|---|---|
| L’indexation ne se termine jamais | Annulation définie trop basse | Augmentez la valeur de cancelAfter ou supprimez l’annulation pour les tâches longues |
| Aucun mise à jour de statut en mode async | Gestionnaire d’événement mal attaché | Assurez‑vous que index.getEvents().StatusChanged.add(...) est appelé avant index.add |
| Erreurs de type out‑of‑memory | Trop de threads ou limites de métadonnées élevées | Réduisez options.setThreads et diminuez les limites des champs de métadonnées |
| Métadonnées manquantes dans les résultats | Indexation des métadonnées désactivée | Vérifiez que options.getMetadataIndexingOptions() est configuré et ne ignore pas les champs |
Questions fréquentes
Q : Comment obtenir une licence temporaire pour GroupDocs.Search ?
R : Visitez GroupDocs’ temporary license page.
Q : Puis‑je annuler une opération d’indexation en cours ?
R : Oui – utilisez la propriété d’annulation avec cancelAfter() ou appelez Cancellation.cancel() programmatiquement.
Q : Quels sont les cas d’utilisation de l’indexation asynchrone ?
R : La récupération de documents en temps réel, le traitement par lots en arrière‑plan et les applications à interface réactive bénéficient de l’indexation asynchrone.
Q : Est‑il sûr d’augmenter le nombre de threads sur un serveur partagé ?
R : Augmentez progressivement et surveillez la charge CPU ; sur des environnements fortement partagés, maintenez un nombre de threads modeste (2‑4).
Q : Comment l’indexation des métadonnées affecte‑t‑elle la pertinence de la recherche ?
R : Des métadonnées correctement indexées (auteur, date de création, tags) peuvent être pondérées davantage dans les requêtes, améliorant ainsi la précision des résultats.
Conclusion
En adoptant ces fonctionnalités avancées de GroupDocs.Search pour Java, vous optimiserez les performances de recherche dans une variété de scénarios — de l’ingestion rapide de documents au contrôle fin des métadonnées. Expérimentez avec différentes configurations, surveillez l’utilisation des ressources et adaptez les paramètres à votre charge de travail spécifique pour obtenir les meilleurs résultats.
Last Updated: 2025-12-29
Tested With: GroupDocs.Search 25.4 for Java
Author: GroupDocs