Die Volltextsuche ist eine Möglichkeit, einen Text/eine Abfrage innerhalb einer Sammlung von Dokumenten zu durchsuchen. Dieser Ansatz findet schnell alle Instanzen eines Begriffs/Satzes und funktioniert mit Textindizes. In diesem Artikel erfahren Sie, wie Sie mit Java programmgesteuert nach Volltext in Dokumenten suchen.
Danach können Sie verschiedene Suchtechniken implementieren und Ihre Suchlösung für Textverarbeitungsdokumente, Tabellenkalkulationen, Präsentationen, HTML-Dateien, PDF-Dateien, eBooks, E-Mail-Nachrichten, ZIP-Archive und viele andere Dokumentformate erstellen.
Nachfolgend werden folgende Themen behandelt:
Java-API für die Volltextsuche
GroupDocs.Search stellt eine Java-API für die Volltextsuche bereit, die ohne Abhängigkeit von Drittanbietertools und Software in jede Anwendung integriert werden kann. Sie können damit eine große Liste von Dokumentformaten durchsuchen. Einige der Suchtechniken, die mit der API durchgeführt werden können, sind wie folgt:
- Suche nach Groß- und Kleinschreibung
- Suche nach regulären Ausdrücken
- Facettensuche
- Ungenaue Suche
- Suche nach Homophonen
- Synonymsuche
Herunterladen oder Konfigurieren
Sie können die JAR-Datei aus dem Download-Bereich herunterladen oder einfach die neuesten Repository- und Abhängigkeitskonfigurationen für die pom.xml Ihrer maven-basierten Java-Anwendungen abrufen.
<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>
Volltextsuche mit Java
Es gibt zwei Schritte, um die Suche in Dateien durchzuführen, die in einem Ordner gespeichert sind.
- Indizierung
- Suche durchführen
Indizieren Sie Dateien mit Java
Ein Index enthält gescannten Text aller Dokumente. Wenn Sie also eine Suchoperation durchführen, wird nur auf den Index verwiesen und nicht auf den Text der Originaldokumente. Um Tausende von Dokumenten mit denselben oder unterschiedlichen Dateiformaten sofort durchsuchen zu können, müssen Sie einen Index erstellen und diese Dokumente hinzufügen. Wenn Dokumente indexiert werden, ist der Index bereit, die Suchanfragen zu verarbeiten.
Die folgenden einfachen zwei Zeilen erstellen einen Index und fügen auch den Dokumentenordner zum Index hinzu.
Index index = new Index("indexingFolderPath");
index.add("documentsFolderPath");
Suche in Java durchführen
Nachdem wir mehrere Dokumente desselben oder unterschiedlicher Formate wie (Word, PDF, Excel und HTML) indexiert haben, können wir fortfahren, um eine bestimmte Suchanfrage (Suchbegriff „Draw“) darüber zu verarbeiten. Im Folgenden finden Sie die Schritte zum Durchführen einer Textsuche für mehrere Dokumente in einem Ordner mit Java:
- Geben Sie den Quellordner der Dokumente und den Indexordner an.
- Erstellen Sie Index mithilfe des Indexordners.
- Fügen Sie den Quellordner zum Index hinzu.
- Bereiten Sie die Abfragezeichenfolge vor.
- Führen Sie eine Suche mit der Methode search der Index-Klasse durch.
- Durchsuchen Sie alle Suchergebnisse nach den Eigenschaften der einzelnen Dokumente.
Der folgende Quellcode führt eine Textsuche in Java für alle Dokumente des bereitgestellten Ordners durch.
// Durchsuchen Sie mithilfe von Java bestimmten Text in mehreren PDF-, Word-, Excel- und HTML-Dokumenten in einem Ordner
Index index = new Index("path/indexingFolder");
index.add("path/documentsFolderPath");
// Suche im Index nach angegebenem Text
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());
}
Wir erhalten den Dokumentpfad und die Anzahl der Vorkommen der Suchbegriffe in allen Dokumenten mit diesem angegebenen Ordner. Hier ist der Screenshot zur Visualisierung.
Markieren Sie Ergebnisse der Textsuche in Java
Lassen Sie uns nun dieselbe Volltextsuche durchführen und alle Vorkommen hervorheben, die Ihrer Abfrage entsprechen.
Die folgenden Schritte zeigen, wie Sie die Ergebnisse der Textsuche hervorheben:
- Erstellen Sie Indexund fügen Sie den Dokumentenordner dem Index hinzu.
- Bereiten Sie die Abfragezeichenfolge vor.
- Durchsuchen Sie den Dokumentenordner mit der Methode Suche.
- Erstellen Sie beim Durchlaufen der Ergebnisse den Textmarker mit HtmlHighlighter.
- Verwenden Sie die Hervorhebungsmethode, um die Suchergebnisse hervorzuheben.
Der folgende Code generiert die HTML-Ausgabe mit hervorgehobenen Suchergebnissen mit Java.
// Markieren Sie die Ergebnisse der Volltextsuche mehrerer Dokumente in einem Ordner in 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
}
Als Ausgabe erhalten wir mehrere HTML-Dateien. Jede Datei zeigt den Inhalt eines separaten Dokuments (zB excel.xlsx, source.docx, target.docx) mit hervorgehobenen Suchbegriffen/Wörtern. Unten ist die hervorgehobene HTML-Ausgabe einer DOCX-Datei, TXT-Datei und PDF-Datei, die mit dem obigen Code erhalten wurde.
Holen Sie sich eine kostenlose API-Lizenz
Sie können eine kostenlose temporäre Lizenz erhalten, um die API ohne die Evaluierungseinschränkungen zu verwenden.
Fazit
In diesem Artikel haben wir gelernt, Text in mehreren Dokumenten eines Ordners in Java zu suchen. Außerdem haben wir besprochen, wie der Text von Suchergebnissen im HTML-Format für MS Word-Dateien, TXT-Dateien und PDF-Dateien mithilfe von GroupDocs.Search for Java programmgesteuert hervorgehoben werden kann.
Unter Dokumentation erfahren Sie mehr über die API. Viele weitere Beispiele sind unter GitHub verfügbar. Bei Fragen kontaktieren Sie uns über das Forum.