Kiemelt keresési eredmények Java – Szinkron és aszinkron indexelés
Ebben az útmutatóban megismerheti, hogyan highlight search results Java használja a GroupDocs.Search könyvtárat, és lépésről lépésre láthatja, hogyan indexelhet dokumentumokat Java-ban szinkron módon és aszinkron módon. Akár egy kis asztali eszközt, akár egy nagyszabású vállalati keresési szolgáltatást épít, ezek a technikák lehetővé teszik, hogy azonnali, vizuálisan tiszta egyezéseket nyújtson anélkül, hogy blokkolná az alkalmazás szálait.
Gyors válaszok
- Mit jelent a “highlight search results Java”? Ez azt jelenti, hogy minden egyező kifejezést a visszaadott részletben jelölőkkel (pl.
<mark>) körülveszünk, így a felhasználók azonnal láthatják a találat kontextusát. - Mikor kell szinkron indexelést használni? Használja kis‑közepes gyűjtemények esetén, ahol a dokumentumnak azonnal kereshetőnek kell lennie, amint hozzáadják.
- Mikor előnyös az aszinkron indexelés? Nagy kötegek esetén vagy amikor a UI szálnak reagálónak kell maradnia, miközben az index a háttérben épül.
- Szükségem van licencre? A fejlesztéshez egy ingyenes próba verzió is működik; egy teljes licenc eltávolítja a korlátozásokat és feloldja a fejlett funkciókat.
- Mely Java verzió támogatott? Java 8 vagy újabb.
Mi a “highlight search results Java”?
highlight search results java a folyamat, amely a GroupDocs.Search nyers egyezési adatát veszi, és vizuális jelzéseket – általában HTML <mark> címkéket – helyez el minden megtalált kifejezés körül. Ez az eredményrészleteket azonnal olvashatóvá teszi egy weboldalon vagy Swing komponensben, javítva a felhasználói élményt azáltal, hogy pontosan megmutatja, hol jelenik meg a lekérdezés.
Miért használja a GroupDocs.Search-et Java-hoz?
A GroupDocs.Search egy nagy teljesítményű, nyelvfüggetlen motor, amely akár 5 000 dokumentumot másodpercenként képes feldolgozni, több mint 30 fájlformátumot támogat, és 10 millió dokumentumot tartalmazó gyűjteményeket indexel anélkül, hogy a teljes korpuszt a memóriába töltené. A beépített kiemelés, a valós idejű indexelés és a többnyelvű elemzők ideálissá teszik tartalomkezelő rendszerek, e‑kereskedelmi katalógusok és vállalati dokumentumtárak számára.
Előkövetelmények
- Java Development Kit (JDK 8 vagy újabb) telepítve és a
JAVA_HOMEhelyesen beállítva. - IntelliJ IDEA vagy Eclipse típusú IDE.
- Egy mappa (pl.
documents/) a indexelni kívánt fájlokkal – egyszerű szöveg, PDF, DOCX stb. - Maven a függőségkezeléshez (vagy manuálisan is hozzáadhatja a JAR-t).
Szükséges könyvtárak és függőségek
Adja hozzá a GroupDocs.Search-et a Maven pom.xml-jéhez:
<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>
Közvetlen letöltéshez szerezze be a legújabb verziót a GroupDocs.Search for Java releases oldalról.
Környezet beállítása
- Ellenőrizze, hogy a
JAVA_HOMEegy kompatibilis JDK-ra mutat. - Hozzon létre egy új Maven projektet, és illessze be a fenti kódrészletet a
<dependencies>szakaszba. - Helyezzen minta fájlokat egy
src/main/resources/documents/könyvtárba.
Hogyan állítsa be a GroupDocs.Search-et Java-hoz
Index a magosztály, amely egy lemezen tárolt kereshető gyűjteményt képvisel.
Hozzon létre egy Index példányt, amely egy lemezen lévő mappára mutat, alkalmazzon licencet, ha van, és opcionálisan konfiguráljon egy elemzőt a nyelvspecifikus tokenizáláshoz. Ez az előkészítő lépés biztosítja, hogy a motor hatékonyan tudja olvasni, írni és keresni az indexet.
Az Index osztály a magkomponens, amely egy lemezen tárolt kereshető gyűjteményt képvisel. Miután példányosította, minden indexelési és lekérdezési művelet ezen az objektumon keresztül folyik.
- Install the library – Használja a fenti Maven kódrészletet, vagy töltse le a JAR-t a GroupDocs oldalról.
- Obtain a license – Kezdje egy próba licenccel; a telepítés előtt cserélje le egy éles kulcsra.
- Initialize the index – A következő kódrészlet mutatja, hogyan hozhat létre (vagy nyithat meg) egy index mappát:
import com.groupdocs.search.Index;
// Create an index in the specified folder
Index index = new Index("path/to/index/folder");
Hogyan kiemeljük a keresési eredményeket Java – szinkron indexelés
DocumentHighlighter egy segédosztály, amely kiemelt részleteket generál a keresési eredményekből.
Töltse be az indexet, adjon hozzá dokumentumokat a index.add(documentPath) segítségével, futtasson egy lekérdezést, majd hívja meg a DocumentHighlighter-t, hogy a találatokat <mark> címkékkel körülvegye. A teljes folyamat a hívó szálon fut, így a dokumentum azonnal kereshetővé válik, miután az add visszatér a végfelhasználók számára.
1. lépés: az index létrehozása és hibakezelés csatolása
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());
}
});
2. lépés: dokumentumok hozzáadása és keresés futtatása
// Add documents
index.add(documentsFolder);
// Perform a search
String query = "tincidunt";
SearchResult result = index.search(query);
3. lépés: eredmények feldolgozása és a “highlight search results Java” kiemelése
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);
}
}
}
Hogyan kiemeljük a keresési eredményeket Java – aszinkron indexelés
IndexingOptions beállítja, hogyan fut a indexelési folyamat, beleértve a szinkron vagy aszinkron módot.
Állítsa be a IndexingOptions-t háttérmódban való futtatásra, iratkozzon fel a StatusChanged eseményekre, és engedje, hogy a motor a fájlokat indexelje, miközben a UI más kéréseket szolgál ki. Amikor az állapot Ready-re változik, végrehajthat kereséseket és kaphat kiemelt részleteket, akárcsak szinkron módban.
Az AsyncIndexingListener előrehaladási frissítéseket kap, lehetővé téve egy előrehaladási sáv vagy napló állapot megjelenítését a fő szál blokkolása nélkül.
1. lépés: az index beállítása eseményfigyelőkkel
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.");
}
}
});
2. lépés: aszinkron mód engedélyezése és indexelés indítása
// Set up async indexing options
IndexingOptions options = new IndexingOptions();
options.setAsync(true);
// Add documents asynchronously
index.add(documentsFolder, options);
}
}
Hogyan indexeljük a dokumentumokat Java – gyakorlati tippek
index.update(path) frissíti a meglévő dokumentumot az indexben a megadott útvonalú fájllal.
A nagy gyűjteményeket bontsa 1 000–5 000 fájlos kötegekre, szűrje a kiterjesztés alapján a felesleges feldolgozás elkerülése érdekében, és használja a index.update(path)-t a módosított fájlokhoz a teljes index újraépítése helyett. Ezek a gyakorlatok alacsony memóriahasználatot és előre látható indexelési időt biztosítanak a konzisztencia fenntartásához.
- Batch size: Nagy gyűjtemények esetén ossza fel a mappát kisebb kötegekre a memóriahullámok elkerülése érdekében.
- File filters: Használja az
IndexingOptions.setFileExtensions-t, hogy csak a szükséges formátumokat (pl..pdf,.docx) vegye fel. - Re‑indexing: Ha egy dokumentum változik, hívja a
index.update(documentPath)-t ahelyett, hogy a teljes indexet újra létrehozná.
Teljesítmény szempontok
- Memory: Figyelje a heap használatát; növelje a
-Xmxértéket, ha egyszerre sok nagy fájlt dolgoz fel. - CPU: Az aszinkron indexelés a munkaterhet szálak között osztja el, de még mindig CPU-t fogyaszt – kövesse a használatot JVisualVM-mel.
- Result highlighting: A kiemelés mérsékelt többletterhet jelent (≈ 2–5 ms eredményenként). Gyorsítótárazza a generált HTML-t, ha ugyanazokat a részleteket többször kell megjeleníteni.
Gyakran ismételt kérdések
Q: Kombinálhatom a szinkron és aszinkron indexelést ugyanabban az alkalmazásban?
A: Igen. Használja a szinkron indexelést kis, gyakran frissített halmazokhoz, és az aszinkron indexelést tömeges importokhoz vagy háttérfeladatokhoz.
Q: Hogyan testreszabhatom a kiemelés stílusát?
A: Adjon meg egy egyedi DocumentHighlighter implementációt, amely a kívánt HTML, CSS vagy XML címkéket írja a megtalált kifejezések köré.
Q: Milyen fájltípusokat támogat a GroupDocs.Search alapból?
A: Szöveg, PDF, DOC/DOCX, XLS/XLSX, PPT/PPTX, HTML, és még sok más beépített parserrel – összesen több mint 30 formátum.
Q: Lehetséges egyszerre több nyelven keresni?
A: Teljesen lehetséges. A GroupDocs.Search többnyelvű elemzőket tartalmaz; csak a megfelelő Analyzer-t konfigurálja az index létrehozásakor.
Q: Hogyan védhetem meg az index mappát?
A: Tárolja az indexet egy védett könyvtárban, állítson be szigorú fájlrendszer jogosultságokat, és opcionálisan titkosítsa az indexet a könyvtár biztonsági funkcióival.
Utolsó frissítés: 2026-09-11
Tesztelve a következővel: GroupDocs.Search 25.4 for Java
Szerző: GroupDocs