Suchergebnisse hervorheben Java – Synchrones & asynchrones Indexieren
In diesem Leitfaden erfahren Sie, wie Sie highlight search results Java mit der GroupDocs.Search‑Bibliothek nutzen können, und Sie sehen Schritt für Schritt, wie Sie Dokumente in Java sowohl synchron als auch asynchron indexieren. Egal, ob Sie ein kleines Desktop‑Tool oder einen groß angelegten Enterprise‑Suchdienst entwickeln, diese Techniken ermöglichen Ihnen sofortige, visuell klare Treffer, ohne die Anwendungsthreads zu blockieren.
Schnelle Antworten
- Was bedeutet “highlight search results Java”? Es bedeutet, dass jeder gefundene Begriff in den zurückgegebenen Snippets mit Markup (z. B.
<mark>) umschlossen wird, damit Benutzer sofort den Kontext des Treffers sehen können. - Wann sollte ich synchrones Indexieren verwenden? Verwenden Sie es für kleine bis mittlere Sammlungen, bei denen das Dokument sofort nach dem Hinzufügen durchsuchbar sein muss.
- Wann ist asynchrones Indexieren vorzuziehen? Wählen Sie es für große Stapel oder wenn der UI‑Thread reaktionsfähig bleiben muss, während der Index im Hintergrund aufgebaut wird.
- Brauche ich eine Lizenz? Eine kostenlose Testversion funktioniert für die Entwicklung; eine Vollversion entfernt Beschränkungen und schaltet erweiterte Funktionen frei.
- Welche Java‑Version wird unterstützt? Java 8 oder neuer.
Was ist “highlight search results Java”?
highlight search results java ist der Vorgang, rohe Trefferdaten von GroupDocs.Search zu nehmen und visuelle Hinweise – typischerweise HTML‑<mark>‑Tags – um jeden gefundenen Begriff zu setzen. Dadurch werden die Ergebnis‑Snippets sofort lesbar in einer Webseite oder Swing‑Komponente, was die Benutzererfahrung verbessert, indem genau gezeigt wird, wo die Abfrage erscheint.
Warum GroupDocs.Search für Java verwenden?
GroupDocs.Search liefert eine hochleistungsfähige, sprachunabhängige Engine, die bis zu 5 000 Dokumente pro Sekunde verarbeiten, über 30 Dateiformate unterstützen und 10 Millionen‑Dokument‑Sammlungen indexieren kann, ohne das gesamte Korpus in den Speicher zu laden. Die integrierte Hervorhebung, das Echtzeit‑Indexieren und die mehrsprachigen Analysatoren machen es ideal für Content‑Management‑Systeme, E‑Commerce‑Kataloge und Unternehmens‑Dokumenten‑Repositorys.
Voraussetzungen
- Java Development Kit (JDK 8 oder neuer) installiert und
JAVA_HOMEkorrekt gesetzt. - Eine IDE wie IntelliJ IDEA oder Eclipse.
- Ein Ordner (z. B.
documents/) mit den Dateien, die Sie indexieren möchten – Klartext, PDF, DOCX usw. - Maven für das Abhängigkeits‑Management (oder Sie können das JAR manuell hinzufügen).
Erforderliche Bibliotheken und Abhängigkeiten
Fügen Sie GroupDocs.Search zu Ihrer Maven‑pom.xml hinzu:
<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>
Für direkte Downloads erhalten Sie die neueste Version von GroupDocs.Search for Java releases.
Umgebung einrichten
- Vergewissern Sie sich, dass
JAVA_HOMEauf ein kompatibles JDK zeigt. - Erstellen Sie ein neues Maven‑Projekt und fügen Sie das obige Snippet in den
<dependencies>‑Abschnitt ein. - Legen Sie Beispieldateien in ein Verzeichnis wie
src/main/resources/documents/ab.
Wie man GroupDocs.Search für Java einrichtet
Index ist die Kernklasse, die eine durchsuchbare Sammlung auf der Festplatte repräsentiert.
Erstellen Sie eine Index‑Instanz, die auf einen Ordner auf der Festplatte zeigt, wenden Sie eine Lizenz an, falls Sie eine besitzen, und konfigurieren Sie optional einen Analysator für sprachspezifische Tokenisierung. Dieser Vorbereitungsschritt stellt sicher, dass die Engine den Index effizient lesen, schreiben und durchsuchen kann.
Die Index‑Klasse ist die Kernkomponente, die eine durchsuchbare Sammlung auf der Festplatte darstellt. Nachdem Sie sie instanziiert haben, laufen alle Index‑ und Abfrage‑Operationen über dieses Objekt.
- Bibliothek installieren – Verwenden Sie das oben gezeigte Maven‑Snippet oder laden Sie das JAR von GroupDocs herunter.
- Lizenz erhalten – Beginnen Sie mit einer Testlizenz; ersetzen Sie sie vor dem Deployment durch einen Produktionsschlüssel.
- Index initialisieren – Das folgende Snippet zeigt, wie Sie einen Index‑Ordner erstellen (oder öffnen):
import com.groupdocs.search.Index;
// Create an index in the specified folder
Index index = new Index("path/to/index/folder");
Wie man Suchergebnisse hervorhebt Java – synchrones Indexieren
DocumentHighlighter ist eine Hilfsklasse, die hervorgehobene Snippets aus Suchergebnissen erzeugt.
Laden Sie den Index, fügen Sie Dokumente mit index.add(documentPath) hinzu, führen Sie eine Abfrage aus und rufen Sie dann DocumentHighlighter auf, um Treffer in <mark>‑Tags zu setzen. Der gesamte Vorgang läuft im aufrufenden Thread, sodass das Dokument sofort nach Rückkehr von add für Endbenutzer durchsuchbar ist.
Schritt 1: Index erstellen und Fehlerbehandlung anhängen
import com.groupdocs.search.*;
import com.groupdocs.search.events.*;
import java.nio.file.Paths;
public class SynchronousIndexingFeature {
public static void main(String[] args) {
String indexFolder = "YOUR_DOCUMENT_DIRECTORY/SynchronousIndexing";
String documentsFolder = YOUR_DOCUMENT_DIRECTORY; // Replace with actual directory path
Index index = new Index(indexFolder);
// Handle errors
index.getEvents().ErrorOccurred.add(new EventHandler<IndexErrorEventArgs>() {
@Override
public void invoke(Object sender, IndexErrorEventArgs args) {
System.out.println(args.getMessage());
}
});
Schritt 2: Dokumente hinzufügen und Suche ausführen
// Add documents
index.add(documentsFolder);
// Perform a search
String query = "tincidunt";
SearchResult result = index.search(query);
Schritt 3: Ergebnisse verarbeiten und Suchergebnisse hervorheben Java
for (int i = 0; i < result.getDocumentCount(); i++) {
FoundDocument document = result.getFoundDocument(i);
System.out.println(": Document: " + document.getDocumentInfo().getFilePath());
System.out.println(": Occurrences: " + document.getOccurrenceCount());
}
// Highlight results
if (result.getDocumentCount() > 0) {
FoundDocument document = result.getFoundDocument(0);
String path = YOUR_OUTPUT_DIRECTORY + "/Highlighted.html";
OutputAdapter outputAdapter = new FileOutputAdapter(OutputFormat.Html, path);
DocumentHighlighter highlighter = new DocumentHighlighter(outputAdapter);
index.highlight(document, highlighter);
}
}
}
Wie man Suchergebnisse hervorhebt Java – asynchrones Indexieren
IndexingOptions konfiguriert, wie der Indexierungsprozess läuft, einschließlich synchronem oder asynchronem Modus.
Konfigurieren Sie die IndexingOptions, um im Hintergrundmodus zu laufen, abonnieren Sie StatusChanged‑Ereignisse und lassen Sie die Engine Dateien indexieren, während Ihre UI andere Anfragen bedient. Sobald der Status zu Ready wechselt, können Sie Suchen ausführen und hervorgehobene Snippets erhalten, genau wie im synchronen Modus.
Der AsyncIndexingListener erhält Fortschritts‑Updates, sodass Sie eine Fortschrittsanzeige oder Protokoll‑Status anzeigen können, ohne den Haupt‑Thread zu blockieren.
Schritt 1: Index mit Ereignis‑Listenern einrichten
import com.groupdocs.search.*;
import com.groupdocs.search.events.*;
public class AsynchronousIndexingFeature {
public static void main(String[] args) {
String indexFolder = "YOUR_DOCUMENT_DIRECTORY/AsynchronousIndexing";
String documentsFolder = YOUR_DOCUMENT_DIRECTORY; // Replace with actual directory path
Index index = new Index(indexFolder);
// Handle errors and status changes
index.getEvents().ErrorOccurred.add(new EventHandler<IndexErrorEventArgs>() {
@Override
public void invoke(Object sender, IndexErrorEventArgs args) {
System.out.println(args.getMessage());
}
});
index.getEvents().StatusChanged.add(new EventHandler<BaseIndexEventArgs>() {
@Override
public void invoke(Object sender, BaseIndexEventArgs args) {
if (args.getStatus() != IndexStatus.Ready || args.getStatus() == IndexStatus.Failed) {
System.out.println("Indexing completed.");
}
}
});
Schritt 2: Asynchronen Modus aktivieren und Indexierung starten
// Set up async indexing options
IndexingOptions options = new IndexingOptions();
options.setAsync(true);
// Add documents asynchronously
index.add(documentsFolder, options);
}
}
Wie man Dokumente in Java indexiert – praktische Tipps
index.update(path) aktualisiert ein vorhandenes Dokument im Index mit der Datei am angegebenen Pfad.
Teilen Sie große Sammlungen in Stapel von 1 000–5 000 Dateien, filtern Sie nach Erweiterung, um unnötiges Parsen zu vermeiden, und verwenden Sie index.update(path) für geänderte Dateien, anstatt den gesamten Index neu zu erstellen. Diese Praktiken halten den Speicherverbrauch niedrig und die Indexierungszeit vorhersehbar, um Konsistenz zu wahren.
- Stapelgröße: Für riesige Sammlungen teilen Sie den Ordner in kleinere Stapel, um Speicher‑Spikes zu vermeiden.
- Dateifilter: Verwenden Sie
IndexingOptions.setFileExtensions, um nur die Formate einzuschließen, die Sie benötigen (z. B..pdf,.docx). - Re‑Indexierung: Wenn ein Dokument geändert wird, rufen Sie
index.update(documentPath)auf, anstatt den Index von Grund auf neu zu erstellen.
Leistungsüberlegungen
- Speicher: Überwachen Sie die Heap‑Nutzung; erhöhen Sie
-Xmx, wenn Sie viele große Dateien gleichzeitig verarbeiten. - CPU: Asynchrones Indexieren verteilt die Arbeitslast auf mehrere Threads, verbraucht aber weiterhin CPU – verfolgen Sie die Nutzung mit JVisualVM.
- Ergebnis‑Hervorhebung: Die Hervorhebung verursacht einen geringen Overhead (≈ 2–5 ms pro Ergebnis). Cachen Sie das erzeugte HTML, wenn Sie dieselben Snippets wiederholt anzeigen müssen.
Häufig gestellte Fragen
Q: Kann ich synchrones und asynchrones Indexieren in derselben Anwendung kombinieren?
A: Ja. Verwenden Sie synchrones Indexieren für kleine, häufig aktualisierte Mengen und asynchrones Indexieren für Massenimporte oder Hintergrund‑Jobs.
Q: Wie passe ich den Hervorhebungsstil an?
A: Implementieren Sie eine benutzerdefinierte DocumentHighlighter‑Klasse, die das gewünschte HTML, CSS oder XML‑Tag um die gefundenen Begriffe schreibt.
Q: Welche Dateitypen unterstützt GroupDocs.Search von Haus aus?
A: Text, PDF, DOC/DOCX, XLS/XLSX, PPT/PPTX, HTML und viele weitere über eingebaute Parser – über 30 Formate insgesamt.
Q: Ist es möglich, gleichzeitig in mehreren Sprachen zu suchen?
A: Absolut. GroupDocs.Search enthält mehrsprachige Analysatoren; konfigurieren Sie einfach den passenden Analyzer beim Erstellen des Index.
Q: Wie sichere ich den Index‑Ordner?
A: Legen Sie den Index in einem geschützten Verzeichnis ab, setzen Sie strenge Dateisystem‑Berechtigungen und verschlüsseln Sie den Index optional mit den Sicherheits‑Features der Bibliothek.
Last Updated: 2026-09-11
Tested With: GroupDocs.Search 25.4 for Java
Author: GroupDocs