Szöveg kiemelése Java-ban a GroupDocs.Search segítségével
A modern vállalati alkalmazásokban a highlight text java elengedhetetlen a nyers keresési eredmények azonnal olvasható betekintésekké alakításához. Akár jogi felülvizsgálati portált, akár tudományos kutatási motorot, vagy ügyféltámogatási irányítópultot épít, a lekérdezési kifejezések megtalálása és vizuális kiemelése felhasználókat rengeteg másodperc manuális átvizsgálásával takarít meg. Ez az útmutató bemutatja, hogyan használhatja a GroupDocs.Search for Java-t search documents java, index documents java végrehajtására, és hogyan alkalmazhatja a teljes dokumentum- és a fragmentumszintű kiemelést, mindezt csak néhány kódsorral.
Gyors válaszok
- Mi a “search and highlight text” jelentése? Ez azt jelenti, hogy a lekérdezési kifejezéseket egy dokumentumban megtalálja, és vizuálisan kiemeli őket (például színes háttérrel).
- Melyik könyvtár biztosítja ezt a képességet? GroupDocs.Search for Java.
- Szükségem van licencre? Egy ingyenes próba a kiértékeléshez működik; a teljes licenc szükséges a termelési használathoz.
- Testreszabhatom a kiemelés színeit? Igen—bármely RGB szín beállítható a
HighlightOptionssegítségével. - Támogatott a fragmentum kiemelés? Teljesen; meghatározhatja a kifejezéseket a találat előtt/után, hogy tömör részleteket hozzon létre.
Hogyan emeljük ki a szöveget Java-ban dokumentumokban
A szöveg Java-ban történő kiemeléséhez a dokumentumokban először építsen fel egy indexet a forrásfájlokból a megfelelő tömörítési beállításokkal, majd futtasson egy keresési lekérdezést a kívánt kifejezések megtalálásához, és végül exportálja az eredményeket HTML, PDF vagy egyszerű szöveg formátumba, ahol minden egyezés egy kiemelés címkével van körülvéve. Ez a háromlépéses folyamat biztosítja a gyors, pontos kiemelést nagy gyűjtemények esetén.
- Index létrehozása olyan tömörítési beállításokkal, amelyek alacsony tárolási lábnyomot biztosítanak.
- Keresés végrehajtása a kiemelni kívánt lekérdezési karakterlánc használatával.
- Kimenet generálása (HTML, PDF vagy egyszerű szöveg), ahol a lekérdezési kifejezés minden előfordulása egy kiemelés címkével van körülvéve.
Mi a keresés és szöveg kiemelése?
A keresés és szöveg kiemelése az a folyamat, amikor egy indexelt gyűjteményt átvizsgál egy adott lekérdezésre, visszaadja a megfelelő dokumentumokat, majd megjelöli a lekérdezési kifejezés minden előfordulását a kimenetben (HTML, PDF stb.). Ez a vizuális jelzés segíti a végfelhasználókat, hogy azonnal megtalálják a releváns információkat.
Miért használjuk a GroupDocs.Search for Java-t?
A GroupDocs.Search for Java magas teljesítményű indexelést biztosít (akár 50 GB indexenként a Compression.High használatával), gazdag kiemelést, amely egész dokumentumokon és egyedi fragmentumokon is működik, valamint keresztformátumú támogatást több mint 30 fájltípushoz – beleértve a DOCX, PDF, PPTX és TXT formátumokat. A könyvtár emellett inkrementális indexelést kínál, amely lehetővé teszi új fájlok hozzáadását az index újraépítése nélkül, ezáltal akár 80 %-kal csökkentve a leállási időt nagy léptékű telepítéseknél.
Előfeltételek
- Java Development Kit (JDK) 8 vagy újabb.
- Maven a függőségkezeléshez.
- IDE, például IntelliJ IDEA vagy Eclipse.
- Alapvető ismeretek a Java szintaxisról.
A GroupDocs.Search for Java beállítása
Adja hozzá a GroupDocs tárolót és függőséget a pom.xml-hez:
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-search</artifactId>
<version>25.4</version>
</dependency>
A legújabb JAR-t közvetlenül a hivatalos oldalról is letöltheti: GroupDocs.Search for Java releases.
Licenc beszerzése
Kezdje egy ingyenes próbaidőszakkal, vagy szerezzen be egy ideiglenes licencet a kiértékeléshez. Termelési környezetben vásároljon teljes licencet a teljes funkcionalitás eléréséhez.
Implementációs útmutató
A megvalósítás két gyakorlati részre oszlik: kiemelés teljes dokumentumokban és kiemelés fragmentumokban. Mindkét rész tartalmazza a hogyan kell kiemelni Java dokumentumokat a GroupDocs.Search használatával.
Index beállítások konfigurálása
Az indexelés előtt konfigurálja a tárolót magas tömörítés használatára – ez akár 70 %-kal csökkenti a lemezhasználatot, miközben megőrzi a keresési sebességet.
IndexSettings az a konfigurációs objektum, amely szabályozza, hogyan tárolódik az index a lemezen. Állítsa be a Compression-t Compression.High-ra a optimalizáció engedélyezéséhez.Compression meghatározza az indexfájlokra alkalmazott adatkompresszió szintjét, a Compression.High maximális méretcsökkentést biztosít.
Kiemelés teljes dokumentumokban
1. lépés: index létrehozása és feltöltése
Hozzon létre egy index mappát, és adja hozzá az összes keresni kívánt forrásfájlt. Az Index osztály a kereshető tárolót képviseli.
2. lépés: keresés végrehajtása és kiemelés alkalmazása
Keresse meg a kifejezést (például ipsum), és generáljon egy HTML fájlt a kiemelt találatokkal. Használja a HighlightOptions-t a kiemelés színének és az inline stílusok használatának megadásához.
HighlightOptions lehetővé teszi az előtér és háttér színek, valamint a CSS osztály meghatározását, amely minden kiemelt kifejezésre alkalmazásra kerül.
HtmlHighlighter a megadott beállítások alapján HTML kimenetet generál kiemelt kifejezésekkel.SearchResult tartalmazza a megfelelő dokumentumok listáját és az egyes megtalált kifejezések pozícióit.
Direct answer: Töltse be az indexet, hívja meg a search("ipsum")-t, és adja át a kapott SearchResult-et egy konfigurált HighlightOptions példánnyal a HtmlHighlighter-nek. A highlighter olyan HTML-t ad vissza, ahol az “ipsum” minden előfordulása egy <span>-be van ágyazva a kiválasztott háttérszínnel.
- Compression – a magas tömörítés helyet takarít meg.
- HighlightColor – állítson be bármely RGB értéket, hogy illeszkedjen a UI palettájához.
- UseInlineStyles – a
falsetiszta HTML-t generál, amely globálisan stílusozható CSS-sel.
Kiemelés fragmentumokban
1. lépés: indexelés és keresés (ugyanaz, mint fent)
Ugyanazok az indexelési és keresési lépések érvényesek; újrahasználja az Index és SearchResult objektumokat.
2. lépés: fragmentum kontextus meghatározása és kiemelés
Adja meg, hány kifejezés legyen a találat előtt és után minden fragmentumban a FragmentOptions segítségével.
FragmentOptions szabályozza a környező szavak számát (termsBefore és termsAfter), amelyek minden részletbe belekerülnek, lehetővé téve a kontextus és a részlet hossza közötti egyensúlyt.
3. lépés: kiemelt fragmentumok lekérése és írása
Gyűjtse össze a generált fragmentumokat, és írja őket egy HTML fájlba. Minden fragmentum már ki van emelve a beállított HighlightOptions szerint.
fragmentHighlighter egy segédprogram, amely a megadott fragmentum- és kiemelési beállításokkal SearchResult-ből hoz létre kiemelt részleteket.
Direct answer: A SearchResult megszerzése után hívja meg a fragmentHighlighter.highlight(searchResult, fragmentOptions, highlightOptions)-t. A metódus egy HTML részletek listáját adja vissza, ahol minden részlet a megtalált kifejezést tartalmazza a beállított számú környező szóval, és a kiválasztott színnel van kiemelve.
Gyakorlati alkalmazások
- Jogi dokumentum felülvizsgálat – azonnal kiemeli a törvényeket, záradékokat vagy esetreferenciákat több ezer szerződésben.
- Akademiai kutatás – kiemeli a kulcsszavakat több tucat PDF és Word fájlban, csökkentve az irodalomkutatási időt akár 60 %-kal.
- Ügyfélszolgálat – pontosan megtalálja a rendelési számokat vagy hibakódokat a jegytörténetekben, lehetővé téve az ügynökök számára a gyorsabb problémamegoldást.
Teljesítmény szempontok
- Index size – a magas tömörítés (
Compression.High) akár 70 %-kal csökkenti a lemezhasználatot, anélkül, hogy jelentős késleltetést okozna. - Fragment context – a nagyobb
termsBefore/Afterértékek javítják a részlet olvashatóságát, de lekérdezésenként 10–15 ms-ot adhatnak hozzá. - Memory management – figyelje a JVM heap-et nagy korpuszok indexelésekor; fontolja meg az inkrementális indexelést 2 GB-nál nagyobb adatállományok esetén, hogy a memóriahasználat 1 GB alatt maradjon.
Gyakori problémák és megoldások
- Indexing errors – ellenőrizze a fájlutakat, és győződjön meg arról, hogy az alkalmazásnak olvasási/írási jogosultsága van az index mappára.
- No highlights appear – ellenőrizze, hogy a
UseInlineStylesmegfelel a kimeneti formátumnak (HTML vs. PDF). - Color not applied – győződjön meg arról, hogy az RGB értékek 0‑255 tartományban vannak, és a megjelenítő tiszteletben tartja az inline CSS-t vagy a megadott CSS osztályt.
Gyakran ismételt kérdések
Q: Milyen előnyei vannak a GroupDocs.Search for Java használatának?
A: Gyors, skálázható indexelést, testreszabható kiemelést és 30+ dokumentumformátum támogatását kínál, 500 oldalas fájlokat 2 másodperc alatt dolgoz fel egy tipikus szerveren.
Q: Hogyan integrálhatom a GroupDocs.Search-t egy REST API-val?
A: A keresési és kiemelési metódusokat Spring Boot kontrollereken keresztül teheti elérhetővé, HTML részleteket vagy JSON terhelést visszaadva, amelyek a kiemelt fragmentumokat tartalmazzák.
Q: Kezeli a könyvtár a jelszóval védett fájlokat?
A: Igen—adja meg a jelszót a dokumentum indexhez adásakor a addDocument(filePath, password) segítségével.
Q: Testreszabhatom a kiemelés jelölését a színen túl?
A: Természetesen; hozzárendelhet egy CSS osztályt a options.setCssClass("myHighlight") segítségével, és globálisan stílusozhatja, vagy módosíthatja a kiemelés után generált HTML-t.
Q: Melyik verzió lett tesztelve ebben az útmutatóban?
A: A kód a GroupDocs.Search 25.4 verzióval lett validálva.
Q: Hogyan állíthatom be a highlight options java-t, hogy CSS osztályt használjon inline stílusok helyett?
A: Hívja meg a options.setUseInlineStyles(false)-t, és definiáljon egy CSS szabályt az osztályhoz, amelyet a options.setCssClass("myHighlight")-val ad meg.
Q: Van mód a kifejezések közvetlen kiemelésére PDF kimenetben?
A: Igen— a GroupDocs.Search PDF bemenettel működik, és a highlighter HTML-t ad ki, amely beágyazható egy PDF megjelenítőbe vagy a GroupDocs.Conversion segítségével újra PDF-re konvertálható.
Utoljára frissítve: 2026-09-27
Tesztelve a következővel: GroupDocs.Search 25.4
Szerző: GroupDocs
<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>
IndexSettings settings = new IndexSettings();
settings.setTextStorageSettings(new TextStorageSettings(Compression.High));
String indexFolder = "/path/to/your/document/directory/HighlightingInEntireDocument";
Index index = new Index(indexFolder, settings);
index.add("/path/to/your/documents");
SearchResult result = index.search("ipsum");
if (result.getDocumentCount() > 0) {
FoundDocument document = result.getFoundDocument(0);
OutputAdapter outputAdapter = new FileOutputAdapter(OutputFormat.Html, "/path/to/your/output/directory/Highlighted.html");
Highlighter highlighter = new DocumentHighlighter(outputAdapter);
HighlightOptions options = new HighlightOptions();
options.setHighlightColor(new Color(150, 255, 150)); // Custom green shade
options.setUseInlineStyles(false); // Prefer CSS for styling
index.highlight(document, highlighter, options);
}
String indexFolder = "/path/to/your/document/directory/HighlightingInFragments";
Index index = new Index(indexFolder, settings);
index.add("/path/to/your/documents");
SearchResult result = index.search("ipsum");
HighlightOptions options = new HighlightOptions();
options.setTermsBefore(5); // Include 5 terms before the match
options.setTermsAfter(5); // Include 5 terms after the match
options.setHighlightColor(new Color(127, 200, 255)); // Custom blue shade
options.setUseInlineStyles(true); // Use inline styles for emphasis
FoundDocument document = result.getFoundDocument(0);
FragmentHighlighter highlighter = new FragmentHighlighter(OutputFormat.Html);
index.highlight(document, highlighter, options);
StringBuilder stringBuilder = new StringBuilder();
FragmentContainer[] fragmentContainers = highlighter.getResult();
for (FragmentContainer container : fragmentContainers) {
String[] fragments = container.getFragments();
if (fragments.length > 0) {
stringBuilder.append("\n<br>").append(container.getFieldName()).append("<br>\n");
for (String fragment : fragments) {
stringBuilder.append(fragment).append("\n");
}
}
}
try {
Files.write(Paths.get("/path/to/your/output/directory/Fragments.html"), stringBuilder.toString().getBytes());
} catch (IOException ex) {
// Handle exceptions
}