La recherche en texte intégral est un moyen de rechercher un texte/une requête dans une collection de documents. Cette approche trouve rapidement toutes les instances d’un terme/expression et fonctionne en utilisant des index de texte. Dans cet article, nous allons apprendre à rechercher par programmation du texte intégral dans des documents à l’aide de Java.

Recherche en texte intégral

Après cela, vous pouvez mettre en œuvre diverses techniques de recherche et créer votre solution de recherche pour les documents de traitement de texte, les feuilles de calcul, les présentations, les fichiers HTML, les fichiers PDF, les livres électroniques, les e-mails, les archives ZIP et de nombreux autres formats de document.

Les sujets suivants sont traités ci-dessous :

API Java pour la recherche en texte intégral

GroupDocs.Search fournit une API Java de recherche en texte intégral qui peut être intégrée dans n’importe quelle application sans aucun outil tiers ni dépendance logicielle. Il vous permet de rechercher parmi une grande liste de formats de documents. Certaines des techniques de recherche pouvant être effectuées à l’aide de l’API sont les suivantes :

  • Recherche sensible à la casse
  • Recherche d’expressions régulières
  • Recherche à facettes
  • Recherche floue
  • Recherche d’homophones
  • Recherche de synonymes

Télécharger ou configurer

Vous pouvez télécharger le fichier JAR à partir de la section téléchargements, ou simplement obtenir les dernières configurations de référentiel et de dépendance pour le pom.xml de vos applications Java basées sur maven.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-search</artifactId>
        <version>21.3</version> 
</dependency>

Il y a deux étapes pour effectuer la recherche dans les fichiers stockés dans un dossier.

  • Indexation
  • Effectuer une recherche

Fichiers d’indexation à l’aide de Java

Un index possède le texte numérisé de tous les documents. Par conséquent, lorsque vous allez effectuer une opération de recherche, seul l’index est référencé, et non le texte des documents originaux. Pour pouvoir rechercher instantanément parmi des milliers de documents avec des formats de fichiers identiques ou différents, vous devez créer un index et y ajouter ces documents. Lorsque les documents sont indexés, l’index est prêt à gérer les requêtes de recherche.

Les deux lignes simples suivantes créent un index et ajoutent également le dossier de documents à l’index.

Index index = new Index("indexingFolderPath");
index.add("documentsFolderPath");

Après avoir indexé plusieurs documents de formats identiques ou différents tels que (Word, PDF, Excel et HTML), nous pouvons continuer à traiter une requête de recherche spécifique (terme de recherche “Dessiner”) sur eux. Voici les étapes à suivre pour effectuer une recherche de texte sur plusieurs documents dans un dossier à l’aide de Java :

  • Spécifiez le dossier source des documents et le dossier d’index.
  • Créez Index à l’aide du dossier d’index.
  • Ajouter le dossier source à l’index.
  • Préparez la chaîne de requête.
  • Effectuez une recherche en utilisant la méthode search de la classe Index.
  • Parcourez chaque résultat de recherche pour les propriétés de chaque document.

Le code source suivant effectue une recherche de texte en Java sur tous les documents du dossier fourni.

// Rechercher du texte spécifié dans plusieurs documents PDF, Word, Excel et HTML dans un dossier à l'aide de Java
Index index = new Index("path/indexingFolder");
index.add("path/documentsFolderPath");

// Recherche dans l'index du texte spécifié
SearchResult result = index.search("Draw");

for (int i = 0; i < result.getDocumentCount(); i++) {
    FoundDocument document = result.getFoundDocument(i);
    System.out.println("Document Path: " + document.getDocumentInfo().getFilePath());
    System.out.println("Occurrence : " + document.getOccurrenceCount());
}

Nous obtiendrons le chemin du document et le nombre d’occurrences des termes de recherche dans tous les documents avec ce dossier spécifié. Voici la capture d’écran pour la visualisation.

Sortie de texte de recherche complète

Mettre en surbrillance les résultats de la recherche de texte en Java

Effectuons maintenant la même recherche plein texte et mettons également en surbrillance toutes les occurrences qui correspondent à votre requête.

Les étapes suivantes montrent comment mettre en surbrillance les résultats de la recherche de texte :

  • Créez Index et ajoutez le dossier de documents à l’index.
  • Préparez la chaîne de requête.
  • Recherchez le dossier de documents à l’aide de la méthode recherche.
  • En parcourant les résultats, créez le surligneur à l’aide de HtmlHighlighter.
  • Utilisez la méthode de surbrillance pour mettre en surbrillance les résultats de la recherche.

Le code suivant génère la sortie HTML avec les résultats de recherche en surbrillance à l’aide de Java.

// Mettez en surbrillance les résultats de la recherche de texte intégral de plusieurs documents dans un dossier en Java
Index index = new Index("path/indexingFolder");
index.add("path/documentsFolderPath"); // Synchronous indexing documents from the specified folder

String query = "draw"; // Specify a search query
SearchResult result = index.search(query); // Searching in the index

for (int i = 0; i < result.getDocumentCount(); i++) 
{
    FoundDocument document = result.getFoundDocument(i);

    String path = "path/Highlighted-"+ i +".html";
    OutputAdapter outputAdapter = new FileOutputAdapter(path); 
    HtmlHighlighter highlighter = new HtmlHighlighter(outputAdapter); // Creating the highlighter
    index.highlight(document, highlighter); // Generates HTML formatted output document with highlighted search results
}

En sortie, nous obtiendrons plusieurs fichiers HTML. Chaque fichier affichera le contenu d’un document distinct (par exemple, excel.xlsx, source.docx, cible.docx) avec des termes/mots de recherche en surbrillance. Vous trouverez ci-dessous la sortie HTML en surbrillance d’un fichier DOCX, d’un fichier TXT et d’un fichier PDF obtenu à l’aide du code ci-dessus.

Mettre en surbrillance les résultats de la recherche en texte intégral dans le contenu à l'aide de Java

Obtenez une licence API gratuite

Vous pouvez obtenir une licence temporaire gratuite afin d’utiliser l’API sans les limitations d’évaluation.

Conclusion

Dans cet article, nous avons appris à rechercher du texte dans plusieurs documents d’un dossier en Java. En outre, nous avons expliqué comment mettre en surbrillance par programme le texte des résultats de recherche au format HTML pour les fichiers MS Word, les fichiers TXT et les fichiers PDF à l’aide de GroupDocs.Search for Java.

Vous pouvez en savoir plus sur l’API en utilisant documentation. De nombreux autres exemples sont disponibles sur GitHub. Pour toute question, contactez-nous via le forum.

Voir également