Comment rechercher une phrase avec des caractères génériques dans GroupDocs.Search pour Java

Dans les applications modernes centrées sur les documents, comment rechercher une phrase rapidement et avec précision est un facteur décisif pour l’expérience utilisateur. Que vous construisiez une base de connaissances, un catalogue e‑commerce ou un référentiel soumis à la conformité, la capacité à localiser une phrase exacte — ou une variante flexible — maintient les utilisateurs productifs et réduit la charge de support. Ce tutoriel vous guide à travers l’installation de GroupDocs.Search for Java, la création d’un index de recherche, le chargement de documents, et l’exécution de requêtes à la fois en phrase exacte et enrichies de caractères génériques, le tout avec des extraits de code clairs et prêts pour la production.

Réponses rapides

  • Quel est le principal avantage des recherches de phrases ? Correspondance précise de l’ordre des mots et de la proximité, garantissant que seuls les documents contenant la séquence exacte sont renvoyés.
  • Les caractères génériques peuvent-ils être utilisés à l’intérieur d’une phrase ? Oui — les caractères génériques vous permettent d’ignorer ou de remplacer des mots tout en conservant l’ordre global.
  • Ai-je besoin d’une licence pour le développement ? Un essai gratuit suffit pour les tests ; une licence complète est requise pour les déploiements en production.
  • Quelle version de Maven dois-je utiliser ? La dernière version de GroupDocs.Search pour Java (par ex., 25.4 au moment de la rédaction).
  • Cette approche convient-elle aux grands ensembles de documents ? Absolument — GroupDocs.Search peut gérer des collections de plusieurs centaines de milliers de documents avec une latence de requête inférieure à une seconde lorsque l’index est optimisé.

Qu’est‑ce que « comment rechercher une phrase » ?

Rechercher une phrase signifie chercher une séquence spécifique de mots dans un document.
Lorsque vous exécutez une requête de phrase, le moteur vérifie que les mots apparaissent dans l’ordre exact et dans la proximité définie, éliminant les correspondances non pertinentes contenant les mêmes mots dans un contexte différent. Cela rend les recherches de phrases idéales pour localiser des clauses juridiques, des codes produit ou tout texte où l’ordre compte.

Pourquoi utiliser GroupDocs.Search pour les requêtes de phrase et de caractères génériques ?

GroupDocs.Search offre un indexage à haut débit jusqu’à 1 million de documents tout en maintenant des temps de réponse de requête inférieurs à une seconde sur du matériel serveur typique. Son langage de requête prend en charge les phrases exactes, les caractères génériques simples * et ?, ainsi que des motifs avancés tels que les plages numériques (*2~5). La bibliothèque s’intègre à toute application Java via Maven ou un téléchargement JAR direct, et fonctionne sur Java 8+ sans services externes.

Prérequis

  • Java 8 ou plus récent (Java 11 LTS recommandé).
  • Maven 3 ou ultérieur (si vous préférez la gestion des dépendances).
  • Familiarité de base avec la structure d’un projet Java et les concepts orientés objet.

Configuration de GroupDocs.Search pour Java

Utilisation de Maven

Ajoutez le dépôt officiel et la dépendance GroupDocs.Search à votre pom.xml :

<!-- Maven repository -->
<repositories>
    <repository>
        <id>groupdocs-releases</id>
        <url>https://repository.groupdocs.com/release</url>
    </repository>
</repositories>

<!-- GroupDocs.Search dependency -->
<dependency>
    <groupId>com.groupdocs</groupId>
    <artifactId>groupdocs-search</artifactId>
    <version>25.4</version>
</dependency>

Téléchargement direct

Vous pouvez également télécharger le JAR le plus récent depuis la page officielle des versions : GroupDocs.Search pour Java - versions.

Acquisition de licence

  • Essai gratuit : Idéal pour des expériences rapides ; limité à 100 Mo de données indexées.
  • Licence temporaire : Demandez une clé d’évaluation de 30 jours depuis le portail GroupDocs.
  • Licence complète : Requise pour une utilisation en production et une capacité d’indexation illimitée.

Initialisation et configuration de base

Créez un dossier qui contiendra les fichiers d’index et instanciez l’objet Index. La classe Index représente l’index de recherche stocké sur disque et fournit des méthodes pour ajouter, mettre à jour et interroger des documents.

<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>

Ajoutez les documents que vous souhaitez rendre recherchables :

String indexFolder = "YOUR_OUTPUT_DIRECTORY/PhraseSearch";
Index index = new Index(indexFolder);

Comment rechercher une phrase avec des caractères génériques dans GroupDocs.Search

Cette section montre trois niveaux de recherche de phrase — correspondance exacte, caractère générique simple et motifs avancés — en illustrant comment créer un index, ajouter des documents et exécuter chaque type de requête avec du code Java concis. Les exemples couvrent à la fois les requêtes textuelles et les constructions d’objets, permettant aux développeurs d’intégrer des capacités de recherche flexibles dans leurs applications.

Recherche de phrase simple

Vue d’ensemble

Utilisez cette approche lorsque vous avez besoin d’une correspondance exacte d’une séquence de mots, comme une clause juridique ou un numéro de modèle produit.

Réponse directe

Chargez l’index, appelez search avec une phrase entre guillemets (par ex., "quick brown fox"), et le moteur ne renvoie que les documents contenant cette séquence exacte, en préservant l’ordre des mots et les espaces. La requête s’exécute en millisecondes, même sur des index contenant des centaines de milliers de fichiers.

Étape 1 : Créer un index

String documentsFolder = "YOUR_DOCUMENT_DIRECTORY";
index.add(documentsFolder);

Étape 2 : Ajouter des documents à l’index

Index index = new Index(indexFolder);

Étape 3 : Rechercher une phrase spécifique (forme texte)

index.add(documentsFolder);

Étape 4 : Requêtes basées sur des objets (recherche de phrase exacte)

String queryText = "\"sollicitudin at ligula\"";
SearchResult resultText = index.search(queryText);

Recherche de phrase avec caractères génériques

Vue d’ensemble

Les caractères génériques (* pour n’importe quel nombre de caractères, ? pour un seul caractère) vous permettent d’ignorer des mots variables tout en conservant l’ordre des mots environnants.

Réponse directe

Insérez un jeton générique (*) à l’intérieur d’une phrase entre guillemets — par ex., "quick * fox" — pour faire correspondre n’importe quel(s) mot(s) entre quick et fox. Le moteur développe le caractère générique au moment de la requête, ne scannant que les termes indexés qui satisfont le motif, ce qui maintient les performances comparables à une requête de phrase simple.

Étape 1 : Créer un index

  • (Identique à la recherche de phrase simple.)*

Étape 2 : Ajouter des documents à l’index

  • (Identique ci‑dessus.)*

Étape 3 : Recherche en forme texte avec caractères génériques

SearchQuery word1 = SearchQuery.createWordQuery("sollicitudin");
SearchQuery word2 = SearchQuery.createWordQuery("at");
SearchQuery word3 = SearchQuery.createWordQuery("ligula");
SearchQuery queryObject = SearchQuery.createPhraseSearchQuery(word1, word2, word3);
SearchResult resultObject = index.search(queryObject);

Étape 4 : Requêtes basées sur des objets avec caractères génériques (Wildcard Search Java)

String queryText = "\"sollicitudin *0~~3 ligula\"";
SearchResult resultText = index.search(queryText);

Recherche avancée avec caractères génériques

Vue d’ensemble

Combinez des plages numériques, des caractères optionnels et des motifs de type regex personnalisés pour un appariement sophistiqué, tel que les numéros de version ou les codes produit.

Réponse directe

Utilisez la syntaxe étendue *min~max pour définir une plage de distances de mots autorisées, ou ? pour correspondre à un seul caractère. Par exemple, "error *2~5 code" trouve le mot error suivi de deux à cinq mots quelconques puis code. Cette précision réduit les faux positifs tout en offrant de la flexibilité.

Étape 1 : Créer un index

  • (Répété pour plus de clarté.)*

Étape 2 : Ajouter des documents à l’index

  • (Répété.)*

Étape 3 : Recherche en forme texte avec des motifs génériques complexes

SearchQuery word1 = SearchQuery.createWordQuery("sollicitudin");
SearchQuery wildcard2 = SearchQuery.createWildcardQuery(0, 3);
SearchQuery word3 = SearchQuery.createWordQuery("ligula");
SearchQuery queryObject = SearchQuery.createPhraseSearchQuery(word1, wildcard2, word3);
SearchResult resultObject = index.search(queryObject);

Étape 4 : Requêtes basées sur des objets avec caractères génériques avancés

String queryText = "\"sollicitudin *0~~3 ?(0~4)la\"";
SearchResult resultText = index.search(queryText);

Applications pratiques

  • Systèmes de gestion de contenu : Les éditeurs peuvent localiser des clauses exactes ou des extraits flexibles sans parcourir manuellement des centaines de pages.
  • Catalogues e‑commerce : Les acheteurs trouvent des produits même s’ils omettent un descriptif ou utilisent des synonymes, grâce à la tolérance des caractères génériques.
  • Juridique & conformité : Isoler rapidement le texte contractuel qui peut apparaître avec de légères variations entre les accords.

Considérations de performance

  • Créer l’index de recherche une seule fois par jeu de documents stable ; réutilisez la même instance Index pour toutes les requêtes.
  • Ajouter des documents de façon incrémentielle lorsque de nouveaux fichiers arrivent — évitez de reconstruire l’intégralité de l’index pour maintenir une faible utilisation du CPU.
  • Concevoir des motifs de caractères génériques précis ; les motifs plus larges (*) augmentent le nombre d’expansions de termes et peuvent accroître la charge CPU.
  • Appeler index.optimize() périodiquement (si supporté) pour compacter l’index et garder la consommation mémoire sous contrôle.

Problèmes courants & solutions

ProblèmeSolution
Aucun résultat retourné pour une requête avec caractère génériqueVérifiez la syntaxe du caractère générique (*min~max) et assurez‑vous que les mots cibles existent dans la distance définie.
L’index devient obsolète après les mises à jour de fichiersUtilisez index.add(updatedFolder) ou l’API de mise à jour incrémentielle pour rafraîchir uniquement les fichiers modifiés.
Consommation mémoire élevée sur de grands ensembles de donnéesAugmentez le tas JVM (-Xmx4g ou plus) et envisagez de diviser l’index en plusieurs fragments pour le traitement parallèle.

Questions fréquentes

Q : Quelle est la différence entre un caractère générique et une recherche de phrase ?
R : Une recherche de phrase nécessite l’ordre exact des mots et les espaces, tandis qu’un caractère générique vous permet de remplacer ou d’ignorer des mots à l’intérieur de cet ordre, offrant un appariement flexible.

Q : Puis‑je utiliser des caractères génériques avec des données numériques dans les recherches ?
R : Oui — les paramètres de plage de caractères génériques (*min~max) fonctionnent avec les nombres ainsi qu’avec les mots, permettant des requêtes comme "version *1~3".

Q : Comment gérer de très grandes collections de documents ?
R : Gardez l’index optimisé, effectuez des mises à jour incrémentielles et créez des motifs de caractères génériques spécifiques pour limiter l’expansion des termes. GroupDocs.Search peut indexer 1 million de documents tout en maintenant une latence de requête inférieure à 200 ms sur du matériel standard.

Q : GroupDocs.Search est‑il adapté aux scénarios de recherche en temps réel ?
R : Absolument — une fois l’index construit, les requêtes s’exécutent en millisecondes, ce qui le rend idéal pour les boîtes de recherche interactives et les fonctions d’auto‑complétion.

Q : Puis‑je intégrer cette bibliothèque dans un projet Java existant ?
R : Oui. Ajoutez la dépendance Maven ou le JAR, instanciez le Index comme indiqué, et vous êtes prêt à interroger sans modifier le code existant.


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

double word1 = SearchQuery.createWordQuery("sollicitudin");
SearchQuery wildcard2 = SearchQuery.createWildcardQuery(0, 3);

WordPattern pattern = new WordPattern();
pattern.appendWildcard(0, 4);
pattern.appendString("la");

SearchQuery wordPattern3 = SearchQuery.createWordPatternQuery(pattern);
SearchQuery queryObject = SearchQuery.createPhraseSearchQuery(word1, wildcard2, wordPattern3);
SearchResult resultObject = index.search(queryObject);

Tutoriels associés