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.
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
- Recherche en texte intégral
- Effectuer une recherche en Java * Surligner les résultats de la recherche
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>
Recherche plein texte avec Java
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");
Effectuer une recherche en Java
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.
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.
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.