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

  1. 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.
  2. 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.
  3. 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ômeCause probableSolution
L’indexation ne se termine jamaisAnnulation définie trop basseAugmentez la valeur de cancelAfter ou supprimez l’annulation pour les tâches longues
Aucun mise à jour de statut en mode asyncGestionnaire d’événement mal attachéAssurez‑vous que index.getEvents().StatusChanged.add(...) est appelé avant index.add
Erreurs de type out‑of‑memoryTrop de threads ou limites de métadonnées élevéesRéduisez options.setThreads et diminuez les limites des champs de métadonnées
Métadonnées manquantes dans les résultatsIndexation des métadonnées désactivéeVé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