A hatékony dokumentumkeresés elsajátítása a GroupDocs.Search for Java segítségével

A megfelelő szakasz megtalálása több ezer PDF, Word vagy táblázat fájlban olyan, mintha tűt keresnénk egy szénakazalban. Hogyan kell indexet létrehozni gyorsan és a tű visszakeresése teszi értékessé a dokumentum‑kereső megoldást. Ebben az oktatóanyagban megtanulja, hogyan használja a GroupDocs.Search for Java‑t, egy nagy‑teljesítményű java keresőkönyvtárat, index létrehozása, dokumentumok hozzáadása az indexhez, és szöveg kinyerése a dokumentumokból több formátumban, például fájlok, stream-ek, string-ek és strukturált adatok. A végére egy termelés‑kész indexelési folyamatot kap, amely nagy dokumentumgyűjteményekhez is skálázható, miközben alacsony memóriahasználatot biztosít.

Gyors válaszok

  • Mi a fő cél? A hogyan kell indexet létrehozni és a dokumentum tartalmának azonnali lekérése.
  • Melyik könyvtárat használjam? A GroupDocs.Search for Java java keresőkönyvtár.
  • Kimeneti szöveget tudok fájlba menteni? Igen – a könyvtár output text to file adaptereket biztosít HTML, egyszerű szöveg és egyebek számára.
  • Támogatott a strukturált kinyerés? Teljesen – használja a structured text extraction adaptert a mezőszintű adatokhoz.
  • Szükségem van licencre? A próbaverzió licenc fejlesztéshez működik; a végleges licenc szükséges a termelési környezethez.

Mit fogsz megtanulni

  • Hogyan kell hogyan kell indexet létrehozni és dokumentumok hozzáadása az indexhez a GroupDocs.Search for Java segítségével.
  • Technikák a output text to file, stream-ek, string-ek és strukturált formátumok kezelésére.
  • Teljesítmény‑optimalizálási tippek, amelyek gyors és memóriahatékony indexelést biztosítanak.
  • Valós példák, ahol ezek a funkciók kiemelkednek, például jogi‑szerződés tárolók és tudományos‑cikk archívumok.

Miért használjuk a GroupDocs.Search for Java‑t?

A GroupDocs.Search 50+ bemeneti és kimeneti formátumot támogat – beleértve a DOCX, XLSX, PPTX, PDF, HTML és általános képformátumokat – és képes több gigabájtos fájlokat indexelni anélkül, hogy az egész fájlt a memóriába töltené. A benchmarkok azt mutatják, hogy egy 1 GB dokumentumgyűjteményt kevesebb, mint 2 perc alatt lehet indexelni egy standard 8‑magos szerveren, míg a keresési lekérdezések kevesebb mint 100 ms alatt adnak vissza eredményt.

Előfeltételek

  • Java Development Kit (JDK) 8 vagy újabb.
  • GroupDocs.Search for Java library (trial or licensed).
  • Maven for dependency management.
  • Alapvető Java I/O ismeretek.

A GroupDocs.Search for Java beállítása

Először adja hozzá a GroupDocs.Search Maven tárolót és függőséget a projekt pom.xml fájljához. Ez a lépés biztosítja, hogy a könyvtár elérhető legyen az osztályúton.

Maven Setup
Adja hozzá a következő tároló- és függőségkonfigurációkat a pom.xml fájlhoz:

<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>

Azok számára, akik közvetlen letöltést részesítenek előnyben, a legújabb verziót letölthetik a GroupDocs.Search for Java releases oldalról.

License Acquisition
A GroupDocs.Search termelésben való használatához szerezzen be egy próbaverzió vagy végleges licencet a hivatalos oldalról. A próbaverzió licenc korlátozás nélkül használható fejlesztéshez és teszteléshez.

Hogyan kell indexet létrehozni Java-ban egyéni beállításokkal

Index a fő osztály, amely egy kereshető dokumentumgyűjteményt képvisel.
IndexSettings konfigurálja az olyan beállításokat, mint a tömörítés az indexhez.
CompressionLevel meghatározza a tárolt szövegre alkalmazott tömörítés mértékét.

Töltse be az Index objektumot tömörítéssel, mutassa meg egy mappára, és adja hozzá az összes támogatott fájlt. Ez a közvetlen‑válasz bekezdés pontosan leírja, mit kell tenni: példányosítsa az Index‑et a new Index("indexFolder", new IndexSettings().setCompressionLevel(CompressionLevel.High)) kóddal, majd hívja meg az index.add("documentsFolder", true)‑t, hogy rekurzívan indexelje az összes támogatott fájlt. A magas tömörítésű mód akár 70 %-kal is csökkenti a lemezhelyet, miközben a keresési sebesség gyors marad.

Az index létrehozása minden keresés‑alapú alkalmazás alapja. Az alábbi példa végigvezeti a folyamaton, elmagyarázza minden beállítást, és megmutatja, hogyan ellenőrizze, hogy az index sikeresen felépült-e.

Index létrehozása és dokumentumok indexelése

Áttekintés

Az Index osztály a fő komponens, amely egy kereshető dokumentumgyűjteményt képvisel. Tárolja a fordított indexeket, a kifejezés-szótárakat és a gyors lekérdezésekhez szükséges metaadatokat.

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);
    }
}

Magyarázat

  • Index Settings: Engedélyezzük a high compression a szöveg tárolásához, optimalizálva a lemezhely használatát anélkül, hogy a lekérdezési sebességet befolyásolná.
  • Adding Documents: Az index.add() metódus adds documents to index, rekurzívan beolvassa a mappát és automatikusan kezeli az összes támogatott formátumot.

Hogyan kell szöveget kimenetként fájlba, stream-be, string-be és strukturált formátumokba

Az indexelés után gyakran szükség van a dokumentum nyers vagy formázott szövegének kinyerésére. A GroupDocs.Search négy adaptert kínál, amelyek lehetővé teszik a kinyert tartalom írását fájlba, egy memóriában lévő stream‑be, egy Java String‑be vagy egy strukturált objektummodellbe.

Dokumentum szöveg kimenete fájlba

FileOutputAdapter writes extracted document text to a file in the chosen format.

Áttekintés

A FileOutputAdapter writes the extracted text in the chosen format (HTML, plain text, etc.) directly to a file on disk. This is useful for generating human‑readable reports or feeding downstream processing pipelines.

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);
        }
    }
}

Magyarázat

  • FileOutputAdapter: Converts the indexed document’s text into HTML and writes it to the specified file path, preserving basic formatting such as headings and tables.

Dokumentum szöveg kimenete stream-be

StreamOutputAdapter streams extracted document text into a ByteArrayOutputStream without creating a temporary file.

Áttekintés

When you need the content only temporarily—e.g., to send it over HTTP or embed it in a web response—use the StreamOutputAdapter. It streams the text into a ByteArrayOutputStream, avoiding the overhead of creating a temporary file.

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);
        }
    }
}

Magyarázat

  • StreamOutputAdapter: Streams the document’s text into a ByteArrayOutputStream, allowing flexible handling without touching the file system.

Dokumentum szöveg kimenete string-be

StringOutputAdapter captures the entire document text in a single String object.

Áttekintés

For quick logging, debugging, or UI display, the StringOutputAdapter captures the entire document text in a single String object.

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();
        }
    }
}

Magyarázat

  • StringOutputAdapter: Captures the document’s text in a String, making it easy to embed in logs, console output, or UI components.

Dokumentum szöveg kimenete strukturált formátumba

StructuredOutputAdapter returns a rich object model that contains paragraphs, tables, and custom metadata.

Áttekintés

The StructuredOutputAdapter returns a rich object model that contains paragraphs, tables, and custom metadata. This format is ideal for downstream natural‑language‑processing (NLP) or data‑extraction 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);
        }
    }
}

Magyarázat

  • StructuredOutputAdapter: Extracts document text into a structured text extraction format, enabling fine‑grained analysis, field extraction, and integration with machine‑learning pipelines.

Gyakori problémák és megoldások

ProblémaOkMegoldás
Az index nem lett létrehozvaHelytelen mappapath vagy hiányzó írási jogosultságEllenőrizze, hogy az indexFolder létezik és az alkalmazásnak van írási joga
Nincsenek dokumentumok visszaadvaindex.add() nem lett meghívva vagy rossz forrásmappaGyőződjön meg róla, hogy a documentsFolder a helyes könyvtárra mutat és tartalmaz támogatott fájltípusokat
A kimeneti fájl üresAz output adapter útvonala érvénytelen vagy hiányoznak a könyvtárakHozza létre a célkönyvtárat (YOUR_OUTPUT_DIRECTORY) a futtatás előtt
Memória csúcsok nagy fájlok eseténAz egész fájl betöltése a memóriábaStreamOutputAdapter használata az adatok fokozatos feldolgozásához

Gyakran Ismételt Kérdések

Q: Használhatom a GroupDocs.Search‑t más JVM nyelvekkel, például Kotlin‑nal vagy Scala‑val?
A: Igen, a könyvtár tisztán Java, és zökkenőmentesen működik bármely JVM nyelvvel.

Q: Hogyan befolyásolja a tömörítés a keresési sebességet?
A: A magas tömörítés akár 70 %-kal csökkenti a lemezhasználatot, és csak minimális CPU terhet jelent az indexelés során; a lekérdezési késleltetés tipikus terhelés esetén 100 ms alatt marad.

Q: Lehetséges frissíteni egy meglévő indexet újraépítés nélkül?
A: Teljesen. Használja az index.add()‑t új fájlokhoz és az index.remove()‑t elavultak törléséhez, így lehetővé téve az inkrementális frissítéseket.

Q: Melyik kimeneti formátum a legjobb a természetes nyelvfeldolgozási (NLP) csővezetékekhez?
A: A structured text extraction adapter PlainText eredménye tiszta, nyelv‑független tartalmat biztosít, amely ideális az NLP feladatokhoz.

Q: Szükségem van licencre fejlesztéshez és teszteléshez?
A: Egy ingyenes próbaverzió licenc elegendő a fejlesztéshez és értékeléshez; a termelési környezethez megvásárolt licenc szükséges.

Következtetés

Most már rendelkezik egy teljes, termelés‑kész munkafolyamattal a hogyan kell indexet létrehozni, dokumentumok hozzáadásához és szövegük kinyeréséhez minden szükséges formátumban. Kezdje az Index tömörítéssel történő konfigurálásával, adja hozzá a dokumentumgyűjteményt, és válassza ki a megfelelő output adaptert a downstream szcenárióhoz – legyen az HTML jelentés generálása, NLP modell táplálása vagy tartalom stream‑elése egy webkliensnek. Kísérletezzen az inkrementális frissítési API‑kkal, hogy az indexet frissen tartsa költséges újraépítés nélkül, és élvezze a gyors, megbízható keresést bármely dokumentumtárban.


Last Updated: 2026-06-27
Tested With: GroupDocs.Search 25.4 for Java
Author: GroupDocs

Kapcsolódó oktatóanyagok