Meistern effizienter Dokumentensuche mit GroupDocs.Search für Java

Das Auffinden des richtigen Abschnitts in Tausenden von PDFs, Word‑Dateien oder Tabellenkalkulationen kann sich anfühlen, als würde man eine Nadel im Heuhaufen suchen. Wie man einen Index erstellt schnell und diese Nadel wiederfindet, macht eine Dokument‑Such‑Lösung wertvoll. In diesem Tutorial lernen Sie, wie Sie GroupDocs.Search for Java, eine leistungsstarke Java‑Such‑Bibliothek, verwenden, um Index zu erstellen, Dokumente zum Index hinzuzufügen und Text aus Dokumenten zu extrahieren in mehreren Formaten wie Dateien, Streams, Strings und strukturierten Daten. Am Ende verfügen Sie über eine produktions‑bereite Index‑Pipeline, die für große Dokumentensammlungen skaliert und dabei den Speicherverbrauch gering hält.

Schnelle Antworten

  • Was ist der Hauptzweck? Um wie man einen Index erstellt und Dokumentinhalte sofort abzurufen.
  • Welche Bibliothek sollte ich verwenden? Die GroupDocs.Search for Java java search library.
  • Kann ich Text in eine Datei ausgeben? Ja – die Bibliothek stellt output text to file Adapter für HTML, Klartext und mehr bereit.
  • Wird strukturierte Extraktion unterstützt? Absolut – verwenden Sie den structured text extraction Adapter, um feldbasierte Daten zu erhalten.
  • Brauche ich eine Lizenz? Eine Testlizenz funktioniert für die Entwicklung; für Produktionsbereitstellungen ist eine permanente Lizenz erforderlich.

Was Sie lernen werden

  • Wie man wie man einen Index erstellt und Dokumente zum Index hinzuzufügen mit GroupDocs.Search für Java verwendet.
  • Techniken für output text to file, Streams, Strings und strukturierte Formate.
  • Tipps zur Leistungsoptimierung, die das Indexieren schnell und speichereffizient halten.
  • Praxisbeispiele, in denen diese Funktionen glänzen, z. B. Rechtsvertrags‑Repositorys und Archive wissenschaftlicher Arbeiten.

Warum GroupDocs.Search für Java verwenden?

GroupDocs.Search unterstützt mehr als 50 Eingabe‑ und Ausgabeformate – darunter DOCX, XLSX, PPTX, PDF, HTML und gängige Bildtypen – und kann mehrgigabytegroße Dateien indexieren, ohne die gesamte Datei in den Speicher zu laden. Benchmarks zeigen, dass eine 1 GB Dokumentensammlung in weniger als 2 Minuten auf einem Standard‑8‑Kern‑Server indexiert werden kann, während Suchabfragen Ergebnisse in weniger als 100 ms zurückliefern.

Voraussetzungen

  • Java Development Kit (JDK) 8 oder neuer.
  • GroupDocs.Search for Java Bibliothek (Testversion oder lizenziert).
  • Maven für das Abhängigkeitsmanagement.
  • Grundkenntnisse in Java I/O.

Einrichtung von GroupDocs.Search für Java

Fügen Sie zunächst das GroupDocs.Search Maven-Repository und die Abhängigkeit zu Ihrer Projekt‑pom.xml hinzu. Dieser Schritt stellt sicher, dass die Bibliothek im Klassenpfad verfügbar ist.

Maven‑Einrichtung
Fügen Sie die folgenden Repository‑ und Abhängigkeitskonfigurationen in Ihre pom.xml‑Datei ein:

<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 diejenigen, die einen direkten Download bevorzugen, können Sie die neueste Version von GroupDocs.Search for Java releases erhalten.

Lizenzbeschaffung
Um GroupDocs.Search in der Produktion zu nutzen, erwerben Sie eine Test- oder permanente Lizenz von der offiziellen Website. Die Testlizenz ist uneingeschränkt für Entwicklung und Tests.

Wie man einen Index in Java mit benutzerdefinierten Einstellungen erstellt

Index ist die Kernklasse, die eine durchsuchbare Sammlung von Dokumenten darstellt.
IndexSettings konfiguriert Optionen wie Kompression für den Index.
CompressionLevel definiert den Grad der Kompression, der auf gespeicherten Text angewendet wird.

Laden Sie das Index‑Objekt mit aktivierter Kompression, verweisen Sie es auf einen Ordner und fügen Sie alle unterstützten Dateien hinzu. Dieser direkte Antwortabsatz erklärt genau, was zu tun ist: Instanziieren Sie Index mit new Index("indexFolder", new IndexSettings().setCompressionLevel(CompressionLevel.High)) und rufen Sie anschließend index.add("documentsFolder", true) auf, um rekursiv jede unterstützte Datei zu indexieren. Der Hochkompressions‑Modus reduziert die Festplattengröße um bis zu 70 %, während die Suchgeschwindigkeit hoch bleibt.

Das Erstellen des Index ist die Grundlage für jede suchbasierte Anwendung. Das nachstehende Beispiel führt Sie durch den Prozess, erklärt jede Einstellung und zeigt, wie Sie überprüfen können, ob der Index erfolgreich erstellt wurde.

Indexerstellung und Dokumentenindexierung

Überblick

Die Index‑Klasse ist die Kernkomponente, die eine durchsuchbare Sammlung von Dokumenten darstellt. Sie speichert invertierte Indizes, Begriffswörterbücher und Metadaten, die für schnelle Look‑ups erforderlich sind.

import com.groupdocs.search.*;
import java.io.ByteArrayOutputStream;

public class FeatureIndexCreation {
    public static void main(String[] args) {
        // Define the folder paths for indexing
        String indexFolder = YOUR_DOCUMENT_DIRECTORY + "/OutputAdapters/Index";
        String documentsFolder = YOUR_DOCUMENT_DIRECTORY + "/DocumentsPath";  // Adjust as needed

        // Creating an index settings instance with compression enabled
        IndexSettings settings = new IndexSettings();
        settings.setTextStorageSettings(new TextStorageSettings(Compression.High));

        // Creating the index in the specified folder
        Index index = new Index(indexFolder, settings);

        // Adding documents from the specified folder to the index
        index.add(documentsFolder);
    }
}

Erklärung

  • Index Settings: Wir aktivieren high compression für die Textspeicherung, optimieren die Plattenplatznutzung, ohne die Abfragegeschwindigkeit zu beeinträchtigen.
  • Adding Documents: Die Methode index.add() adds documents to index, scannt den Ordner rekursiv und verarbeitet automatisch alle unterstützten Formate.

Wie man Text in Datei, Stream, String und strukturierte Formate ausgibt

Nach dem Indexieren müssen Sie häufig den Roh‑ oder formatierten Text eines Dokuments extrahieren. GroupDocs.Search bietet vier Adapter, mit denen Sie den extrahierten Inhalt in eine Datei, einen In‑Memory‑Stream, einen Java String oder ein strukturiertes Objektmodell schreiben können.

Dokumenttextausgabe in Datei

FileOutputAdapter schreibt den extrahierten Dokumenttext in eine Datei im gewählten Format.

Überblick

Der FileOutputAdapter schreibt den extrahierten Text im gewählten Format (HTML, Klartext usw.) direkt in eine Datei auf der Festplatte. Dies ist nützlich, um menschenlesbare Berichte zu erzeugen oder nachgelagerte Verarbeitungspipelines zu speisen.

import com.groupdocs.search.*;

public class FeatureOutputToFile {
    public static void main(String[] args) {
        String indexFolder = YOUR_DOCUMENT_DIRECTORY + "/OutputAdapters/Index";
        Index index = new Index(indexFolder);

        // Assuming documents are already indexed, retrieve the first document
        DocumentInfo[] documents = index.getIndexedDocuments();
        if (documents.length > 0) {
            DocumentInfo document = documents[0];

            // Output document text to an HTML file
            FileOutputAdapter fileOutputAdapter = new FileOutputAdapter(OutputFormat.Html, YOUR_OUTPUT_DIRECTORY + "/Text.html");
            index.getDocumentText(document, fileOutputAdapter);
        }
    }
}

Erklärung

  • FileOutputAdapter: Konvertiert den Text des indexierten Dokuments in HTML und schreibt ihn in den angegebenen Dateipfad, wobei grundlegende Formatierungen wie Überschriften und Tabellen erhalten bleiben.

Dokumenttextausgabe in Stream

StreamOutputAdapter streamt den extrahierten Dokumenttext in einen ByteArrayOutputStream, ohne eine temporäre Datei zu erstellen.

Überblick

Wenn Sie den Inhalt nur vorübergehend benötigen – z. B. um ihn über HTTP zu senden oder in einer Web‑Antwort einzubetten – verwenden Sie den StreamOutputAdapter. Er streamt den Text in einen ByteArrayOutputStream und vermeidet den Aufwand, eine temporäre Datei zu erstellen.

import com.groupdocs.search.*;
import java.io.ByteArrayOutputStream;

public class FeatureOutputToStream {
    public static void main(String[] args) {
        String indexFolder = YOUR_DOCUMENT_DIRECTORY + "/OutputAdapters/Index";
        Index index = new Index(indexFolder);

        // Assuming documents are already indexed, retrieve the first document
        DocumentInfo[] documents = index.getIndexedDocuments();
        if (documents.length > 0) {
            DocumentInfo document = documents[0];

            // Output document text to a stream in HTML format
            ByteArrayOutputStream stream = new ByteArrayOutputStream();
            StreamOutputAdapter streamOutputAdapter = new StreamOutputAdapter(OutputFormat.Html, stream);
            index.getDocumentText(document, streamOutputAdapter);
        }
    }
}

Erklärung

  • StreamOutputAdapter: Streamt den Text des Dokuments in einen ByteArrayOutputStream, ermöglicht flexible Verarbeitung, ohne das Dateisystem zu berühren.

Dokumenttextausgabe in String

StringOutputAdapter erfasst den gesamten Dokumenttext in einem einzigen String‑Objekt.

Überblick

Für schnelles Logging, Debugging oder UI‑Anzeige erfasst der StringOutputAdapter den gesamten Dokumenttext in einem einzigen String‑Objekt.

import com.groupdocs.search.*;

public class FeatureOutputToString {
    public static void main(String[] args) {
        String indexFolder = YOUR_DOCUMENT_DIRECTORY + "/OutputAdapters/Index";
        Index index = new Index(indexFolder);

        // Assuming documents are already indexed, retrieve the first document
        DocumentInfo[] documents = index.getIndexedDocuments();
        if (documents.length > 0) {
            DocumentInfo document = documents[0];

            // Output document text to a string in HTML format
            StringOutputAdapter stringOutputAdapter = new StringOutputAdapter(OutputFormat.Html);
            index.getDocumentText(document, stringOutputAdapter);
            String result = stringOutputAdapter.getResult();
        }
    }
}

Erklärung

  • StringOutputAdapter: Erfasst den Text des Dokuments in einem String, wodurch er leicht in Logs, Konsolenausgaben oder UI‑Komponenten eingebettet werden kann.

Dokumenttextausgabe in strukturiertem Format

StructuredOutputAdapter liefert ein reichhaltiges Objektmodell, das Absätze, Tabellen und benutzerdefinierte Metadaten enthält.

Überblick

Der StructuredOutputAdapter liefert ein reichhaltiges Objektmodell, das Absätze, Tabellen und benutzerdefinierte Metadaten enthält. Dieses Format ist ideal für nachgelagerte Natural‑Language‑Processing (NLP)‑ oder Datenextraktions‑Workflows.

import com.groupdocs.search.*;

public class FeatureOutputToStructure {
    public static void main(String[] args) {
        String indexFolder = YOUR_DOCUMENT_DIRECTORY + "/OutputAdapters/Index";
        Index index = new Index(indexFolder);

        // Assuming documents are already indexed, retrieve the first document
        DocumentInfo[] documents = index.getIndexedDocuments();
        if (documents.length > 0) {
            DocumentInfo document = documents[0];

            // Output document text to a structured format like PlainText
            StructuredOutputAdapter structuredOutputAdapter = new StructuredOutputAdapter(OutputFormat.PlainText);
            index.getDocumentText(document, structuredOutputAdapter);
        }
    }
}

Erklärung

  • StructuredOutputAdapter: Extrahiert den Dokumenttext in ein structured text extraction Format, ermöglicht feinkörnige Analyse, Feldextraktion und Integration in Machine‑Learning‑Pipelines.

Häufige Probleme und Lösungen

ProblemUrsacheLösung
Index nicht erstelltFalscher Ordnerpfad oder fehlende SchreibberechtigungenStellen Sie sicher, dass indexFolder existiert und die Anwendung Schreibzugriff hat
Keine Dokumente zurückgegebenindex.add() nicht aufgerufen oder falscher QuellordnerStellen Sie sicher, dass documentsFolder auf das richtige Verzeichnis zeigt und unterstützte Dateitypen enthält
Ausgabedatei leerPfad des Ausgabeadapters ungültig oder Verzeichnisse fehlenErstellen Sie das Zielverzeichnis (YOUR_OUTPUT_DIRECTORY) vor dem Ausführen
Speicherspitzen bei großen DateienLaden der gesamten Datei in den SpeicherVerwenden Sie StreamOutputAdapter, um Daten inkrementell zu verarbeiten

Häufig gestellte Fragen

F: Kann ich GroupDocs.Search mit anderen JVM‑Sprachen wie Kotlin oder Scala verwenden?
A: Ja – die Bibliothek ist reines Java und funktioniert nahtlos mit jeder JVM‑Sprache.

F: Wie wirkt sich Kompression auf die Suchgeschwindigkeit aus?
A: Hochkompression reduziert die Plattennutzung um bis zu 70 % und verursacht nur einen minimalen CPU‑Overhead beim Indexieren; die Abfrage‑Latenz bleibt für typische Workloads unter 100 ms.

F: Ist es möglich, einen bestehenden Index zu aktualisieren, ohne ihn neu zu erstellen?
A: Absolut. Verwenden Sie index.add() für neue Dateien und index.remove() zum Löschen veralteter, um inkrementelle Updates zu ermöglichen.

F: Welches Ausgabeformat ist am besten für Natural‑Language‑Processing‑Pipelines?
A: Das PlainText‑Ergebnis des structured text extraction Adapters liefert sauberen, sprachunabhängigen Inhalt, der ideal für NLP‑Aufgaben ist.

F: Brauche ich eine Lizenz für Entwicklung und Tests?
A: Eine kostenlose Testlizenz reicht für Entwicklung und Evaluierung aus; Produktionsbereitstellungen erfordern eine gekaufte Lizenz.

Fazit

Sie haben nun einen vollständigen, produktionsbereiten Workflow für wie man einen Index erstellt, Dokumente hinzuzufügen und deren Text in allen benötigten Formaten zu extrahieren. Beginnen Sie damit, den Index mit Kompression zu konfigurieren, fügen Sie Ihre Dokumentensammlung hinzu und wählen Sie den passenden Ausgabeadapter für Ihr nachgelagerte Szenario – sei es das Erzeugen von HTML‑Berichten, das Speisen eines NLP‑Modells oder das Streamen von Inhalten an einen Web‑Client. Experimentieren Sie mit den inkrementellen Update‑APIs, um Ihren Index aktuell zu halten, ohne teure Neu‑Erstellungen, und Sie werden eine schnelle, zuverlässige Suche in jedem Dokumenten‑Repository genießen.


Zuletzt aktualisiert: 2026-06-27
Getestet mit: GroupDocs.Search 25.4 for Java
Autor: GroupDocs

Verwandte Tutorials