Extraire le texte PDF Java – Créer un index avec GroupDocs.Search

Dans ce guide pratique, vous découvrirez comment extraire le texte PDF Java à partir de fichiers PDF, sérialiser le contenu extrait et créer un index de recherche haute performance. Que vous construisiez une base de connaissances interne, un portail de recherche de contrats ou un moteur de recherche personnalisé, les étapes ci‑dessous vous guident à travers tout — de l’extraction du texte des PDF à l’exécution de puissantes requêtes en texte intégral. Plongeons‑y et voyons pourquoi GroupDocs.Search rend le processus fluide et évolutif.

Réponses rapides

La méthode index.search exécute une requête sur l’index créé et renvoie une liste de documents correspondants avec leurs scores de pertinence.

  • Quel est le but principal ? Extraire le texte PDF Java à partir de fichiers PDF et créer un index de documents recherchables avec GroupDocs.Search.
  • Quelle version de la bibliothèque ? GroupDocs.Search 25.4 (ou la dernière version).
  • Ai‑je besoin d’une licence ? Un essai gratuit suffit pour le développement ; une licence complète est requise pour la production.
  • Puis‑je indexer des PDF ? Oui — extraire le texte PDF et l’ajouter à l’index.
  • Comment exécuter une recherche ? Utilisez la méthode index.search(query) après avoir ajouté les données.

Qu’est‑ce qu’un index de documents ?

Un index de documents est une collection structurée de termes recherchables extraits de vos fichiers. Il associe chaque terme aux documents dans lesquels il apparaît, permettant des recherches en texte intégral rapides à travers de grands dépôts et réduisant le temps de recherche de minutes à millisecondes, tout en prenant en charge le classement et les fonctionnalités de pertinence.

Pourquoi utiliser GroupDocs.Search pour Java ?

GroupDocs.Search prend en charge plus de 50 formats d’entrée et de sortie, peut indexer des millions de documents sans charger le fichier complet en mémoire, et offre un langage de requête riche avec des opérateurs booléens, génériques et de proximité. Ces capacités quantifiées en font une solution idéale pour les recherches à l’échelle de l’entreprise. Il fournit également une détection de langue intégrée, la racinisation (stemming) et des analyseurs personnalisables pour améliorer la précision des recherches sur du contenu multilingue.

Prérequis

  • GroupDocs.Search for Java (Version 25.4 ou plus récent).
  • Java Development Kit (JDK) compatible avec votre version GroupDocs.
  • Un IDE tel qu’IntelliJ IDEA ou Eclipse.
  • Maven pour la gestion des dépendances.

Configuration de GroupDocs.Search pour Java

Tout d’abord, ajoutez la bibliothèque à votre projet.

Configuration Maven
Incluez ce qui suit dans 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 la dernière version depuis GroupDocs.Search for Java releases.

Acquisition de licence

  • Essai gratuit – Testez toutes les fonctionnalités avec une licence temporaire.
  • Achat – Obtenez un accès complet et un support prioritaire.

Comment extraire le texte des PDF (et d’autres documents)

Chargez votre PDF (ou document pris en charge) avec la classe Extractor, configurez les options d’extraction et appelez extractText(). Cet appel d’une ligne renvoie le texte brut ou formaté prêt à être indexé.

La classe Extractor est le composant central de GroupDocs.Search qui lit un document et produit du texte brut ou formaté.

// ```java
String documentPath = "YOUR_DOCUMENT_DIRECTORY/Lorem ipsum.pdf";
Extractor extractor = new Extractor();
Document document = Document.createFromFile(documentPath);
// ```java
ExtractionOptions extractionOptions = new ExtractionOptions();
extractionOptions.setUseRawTextExtraction(false); // Extract with formatting
ExtractedData extractedData = extractor.extract(document, extractionOptions);

Conseil : Définissez setUseRawTextExtraction(true) si vous avez besoin d’un texte brut sans mise en forme.

Comment sérialiser les données extraites

La sérialisation convertit l’objet texte extrait en un tableau d’octets, vous permettant de le stocker sur disque ou de le transmettre sur un réseau pour une indexation ultérieure.

L’utilitaire SerializationUtil fournit des méthodes statiques pour transformer les objets en flux d’octets et inversement.

// ```java
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
extractedData.serialize(outputStream);
byte[] serializedArray = outputStream.toByteArray();

Comment désérialiser les données extraites

Lorsque vous êtes prêt à créer l’index, désérialisez le tableau d’octets précédemment stocké pour le reconvertir en l’objet d’extraction original.

La méthode deserialize restaure l’état exact du résultat d’extraction, garantissant aucune perte de données entre les sessions.

// ```java
ByteArrayInputStream inputStream = new ByteArrayInputStream(serializedArray);
ExtractedData deserializedData = ExtractedData.deserialize(inputStream);

Comment créer un index de documents

Instanciez un objet Index, spécifiez le dossier de stockage et configurez les options d’indexation telles que les vecteurs de termes et la gestion des mots‑vides.

La classe Index représente le conteneur recherchable qui contient tous les termes, références de documents et métadonnées.

// ```java
String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Indexing/SeparateDataExtraction";
com.groupdocs.search.Index index = new com.groupdocs.search.Index(indexFolder);

Comment ajouter des données à l’index et effectuer une recherche

Ajoutez le résultat d’extraction désérialisé à l’index avec index.add(), puis interrogez en utilisant index.search() pour obtenir des résultats instantanés.

La méthode add enregistre les termes du document dans l’index, tandis que search exécute la requête sur ces termes.

// ```java
ExtractedData[] dataToIndex = new ExtractedData[] { deserializedData };
index.add(dataToIndex, new IndexingOptions());
// ```java
String query = "ipsum";
SearchResult result = index.search(query);

Astuce pro : Utilisez index.search("your query", SearchOptions) pour affiner le classement de pertinence.

Cas d’utilisation courants

  1. Systèmes de gestion de documents – Localisez rapidement les contrats, factures ou politiques.
  2. Moteurs de recherche basés sur le contenu – Alimentez les bases de connaissances internes avec des capacités de recherche en texte intégral Java.
  3. Solutions d’archivage de données – Indexez les enregistrements historiques pour une récupération instantanée.

Considérations de performance

La méthode setStoreTermVectors(boolean) configure le stockage ou non des vecteurs de termes dans l’index, influençant la taille de l’index et les performances des requêtes.

  • Gestion de la mémoire : Augmentez la taille du tas JVM (par ex., -Xmx4g) lors du traitement de lots supérieurs à 500 Mo.
  • Options d’indexation : Désactivez les vecteurs de termes (setStoreTermVectors(false)) pour réduire la taille de l’index jusqu’à 30 %.
  • Mises à jour régulières : Maintenez GroupDocs.Search à jour ; chaque version mineure inclut des améliorations de vitesse de 10‑15 % en moyenne.

Questions fréquemment posées

Q : Comment gérer efficacement des fichiers PDF très volumineux ?
R : Diffusez le fichier en utilisant Extractor et traitez‑le par morceaux ; augmentez également la taille du tas JVM si nécessaire.

Q : Puis‑je personnaliser la syntaxe des requêtes de recherche ?
R : Oui — GroupDocs.Search prend en charge les opérateurs booléens, les caractères génériques et les recherches de proximité.

Q : Que faire si la sérialisation échoue ?
R : Vérifiez que tous les objets implémentent Serializable et capturez IOException pour enregistrer les détails.

Q : Est‑il possible d’indexer uniquement des sections spécifiques d’un document ?
R : Absolument — configurez ExtractionOptions pour filtrer les pages ou sections avant l’indexation.

Q : Comment mettre à jour vers une version plus récente de GroupDocs.Search ?
R : Mettez à jour le numéro de version dans votre pom.xml et exécutez mvn clean install ; consultez le guide de migration pour les changements incompatibles.

Ressources


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

Tutoriels associés