Comment effectuer une recherche regex en Java avec GroupDocs.Search
Parcourir des milliers de documents texte peut ressembler à chercher une aiguille dans une botte de foin. Comment rechercher avec regex en Java devient facile lorsque vous associez le puissant moteur d’expressions régulières du langage à GroupDocs.Search, une bibliothèque qui construit un index pour une correspondance de motifs ultra‑rapide. Dans les prochaines minutes, vous verrez comment installer la bibliothèque, créer un index, ajouter des fichiers et exécuter des requêtes regex simples basées sur du texte ainsi que des requêtes orientées objet. À la fin, vous serez prêt à intégrer une recherche robuste basée sur les motifs dans n’importe quelle application Java.
Réponses rapides
- Quelle est la bibliothèque principale ? GroupDocs.Search for Java
- Comment commencer ? Add the Maven dependency and instantiate an
Indexobject - Puis-je filtrer le contenu avec regex ? Yes – use regex queries for content‑filtering scenarios
- Ai-je besoin d’une licence ? A free trial or temporary license is required for production use
- Quelle version du JDK est prise en charge ? Java 8 or higher
Qu’est-ce que la recherche regex ?
La recherche regex vous permet de localiser des motifs tels que des dates, des adresses e‑mail ou des caractères répétés à travers de nombreux fichiers en une seule opération. Elle transforme une requête en texte brut en un scanner puissant basé sur des règles qui peut extraire ou bloquer du contenu à la volée.
Pourquoi utiliser GroupDocs.Search pour la recherche regex ?
GroupDocs.Search indexe les documents une fois, puis réutilise cet index pour chaque requête, offrant des recherches jusqu’à 10× plus rapides comparées à un balayage brut des fichiers. La bibliothèque prend en charge plus de 30 formats de fichiers (PDF, DOCX, XLSX, PPTX, TXT, HTML, etc.) et peut gérer des fichiers de plusieurs centaines de pages sans charger le fichier complet en mémoire.
Prérequis
- Java Development Kit (JDK) 8 ou supérieur
- Maven pour la gestion des dépendances
- Familiarité de base avec les expressions régulières Java
Bibliothèques et dépendances requises
Ajoutez GroupDocs.Search à votre projet Maven :
<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>
Sinon, téléchargez le JAR le plus récent depuis GroupDocs.Search for Java releases.
Acquisition de licence
Obtenez un essai gratuit ou une licence temporaire depuis GroupDocs.License et chargez‑la au démarrage de l’application.
Configuration de GroupDocs.Search pour Java
Informations d’installation
- Intégration Maven : Ajoutez le dépôt et la dépendance indiqués ci‑dessus à votre
pom.xml. - Téléchargement direct : Placez les fichiers JAR sur le classpath de votre projet.
- Application de licence : Chargez le fichier de licence au démarrage de l’application.
import com.groupdocs.search.*;
public class SearchSetup {
public static void main(String[] args) {
// Initialize the index by specifying a directory.
String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\output\\AdvancedUsage\\Searching\\RegularExpressionSearch";
Index index = new Index(indexFolder);
System.out.println("Index created successfully at: " + indexFolder);
}
}
Composants principaux
La classe Index est le composant principal qui stocke les jetons recherchables extraits de vos documents. Elle permet une recherche rapide de tout terme ou motif sans relire les fichiers originaux.
Comment créer un index
Créer un index est simple : instanciez la classe Index avec le chemin d’un dossier où les fichiers d’index seront stockés. Le constructeur crée les fichiers de base de données nécessaires lors de la première utilisation et prépare le moteur pour l’ajout et la recherche de documents. Une fois créé, réutilisez le même index pour toutes les requêtes.
String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\output\\AdvancedUsage\\Searching\\RegularExpressionSearch";
Index index = new Index(indexFolder);
Comment ajouter des documents
Pour rendre un fichier recherchable, appelez index.add avec une instance de Document (ou DocumentInfo) pointant vers le chemin du fichier. La bibliothèque analyse le contenu, extrait les jetons et les stocke dans l’index. Cette opération peut être effectuée pour des fichiers uniques ou par lots, et les mises à jour sont fusionnées de manière incrémentielle.
index.add("YOUR_DOCUMENT_DIRECTORY");
system.out.println("Documents added to the index.");
Comment effectuer une recherche d’expression régulière sous forme texte
RegexQuery définit une requête de recherche basée sur une expression régulière. Chargez un RegexQuery avec un motif en texte brut et transmettez‑le à la méthode search de l’Index. Le moteur évalue le motif par rapport aux jetons indexés et renvoie les références de documents correspondants, rendant les recherches ponctuelles rapides et simples.
String query1 = "^((.)\\2{1,})";
Comment effectuer une recherche d’expression régulière sous forme d’objet
RegexQuery peut également être construit comme un objet et réutilisé dans plusieurs recherches. Définissez la requête une fois, configurez des options telles que l’insensibilité à la casse ou la correspondance floue, et invoquez index.search de manière répétée. Cette approche améliore les performances lorsque le même motif est appliqué à de nombreux ensembles de documents différents.
SearchResult result1 = index.search(query1);
system.out.println("Number of occurrences found: " + result1.getDocumentCount());
Cas d’utilisation du filtrage de contenu avec regex
Vous pouvez utiliser regex pour bloquer ou signaler automatiquement le contenu correspondant à certains motifs, tels que :
- Détection de caractères répétés pour le filtrage du spam
- Recherche de séquences similaires à des numéros de carte de crédit pour les contrôles de confidentialité des données
- Extraction de dates ou d’ID pour le traitement en aval
Applications pratiques
- Systèmes de gestion de documents : Localisez contrats, factures ou politiques par motif (par ex., numéros de facture).
- Modération de contenu : Appliquez des règles regex pour modérer le texte généré par les utilisateurs dans les forums ou les applications de chat.
- Extraction de données : Extraire des données structurées comme les numéros de commande à partir de PDF ou de fichiers Word non structurés.
Considérations de performance
- Mises à jour de l’index : Appelez
index.addchaque fois que les fichiers source changent pour garder les résultats à jour. - Gestion de la mémoire : Pour des corpus dépassant 1 million de documents, activez l’indexation incrémentielle afin de maintenir l’utilisation du tas sous contrôle.
- Conception des regex : Gardez les motifs concis ; un motif comme
\d{4}-\d{2}-\d{2}s’exécute 3× plus rapidement qu’une expression lourde en jokers comme.*.
Conclusion
Vous savez maintenant comment effectuer une recherche regex en Java avec GroupDocs.Search, de l’installation de la bibliothèque à la création d’un index en passant par l’exécution de requêtes à la fois basées sur du texte et orientées objet. Ces techniques vous permettent d’ajouter une recherche rapide et consciente des motifs à toute application Java, que vous construisiez un portail de documents, un scanner de conformité ou une chaîne d’extraction de données.
Questions fréquemment posées
Q: Quelle est la différence entre les requêtes regex basées sur du texte et celles basées sur des objets dans GroupDocs.Search ?
A: Les requêtes basées sur du texte sont des one‑liners rapides, tandis que les requêtes basées sur des objets offrent des définitions réutilisables et typées qui peuvent être stockées et réutilisées dans plusieurs recherches.
Q: GroupDocs.Search peut‑il indexer des documents non textuels tels que les PDF ou les fichiers Excel ?
A: Oui, la bibliothèque extrait le texte recherchable des PDF, DOCX, XLSX, PPTX et de plus de 30 autres formats.
Q: Comment mettre à jour un index de recherche existant après l’ajout de nouveaux fichiers ?
A: Appelez index.add avec les nouveaux documents ou ceux modifiés ; la bibliothèque fusionnera les changements sans reconstruire l’intégralité de l’index.
Q: Quels sont les pièges courants lors de l’utilisation de regex avec GroupDocs.Search ?
A: Des motifs trop larges (par ex., .*) peuvent entraîner une dégradation des performances, et des expressions mal formées peuvent ne renvoyer aucun résultat. Testez toujours les motifs sur un jeu d’échantillons d’abord.
Q: Où puis‑je trouver des tutoriels plus avancés sur GroupDocs.Search ?
A: Visitez la GroupDocs Documentation pour des guides approfondis, des références API et des projets d’exemple.
Dernière mise à jour : 2026-07-31
Testé avec : GroupDocs.Search 25.4
Auteur : GroupDocs
SearchQuery query2 = SearchQuery.createRegexQuery("^(.)\\1{1,}");
SearchResult result2 = index.search(query2);
system.out.println("Occurrences found using object form: " + result2.getDocumentCount());