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éma | Ok | Megoldás |
|---|---|---|
| Az index nem lett létrehozva | Helytelen mappapath vagy hiányzó írási jogosultság | Ellenőrizze, hogy az indexFolder létezik és az alkalmazásnak van írási joga |
| Nincsenek dokumentumok visszaadva | index.add() nem lett meghívva vagy rossz forrásmappa | Győ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 üres | Az output adapter útvonala érvénytelen vagy hiányoznak a könyvtárak | Hozza létre a célkönyvtárat (YOUR_OUTPUT_DIRECTORY) a futtatás előtt |
| Memória csúcsok nagy fájlok esetén | Az egész fájl betöltése a memóriába | StreamOutputAdapter 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