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 HighlightOptions segí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.

  1. Index létrehozása olyan tömörítési beállításokkal, amelyek alacsony tárolási lábnyomot biztosítanak.
  2. Keresés végrehajtása a kiemelni kívánt lekérdezési karakterlánc használatával.
  3. 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 false tiszta 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

  1. Jogi dokumentum felülvizsgálat – azonnal kiemeli a törvényeket, záradékokat vagy esetreferenciákat több ezer szerződésben.
  2. 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.
  3. Ü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 UseInlineStyles megfelel 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
}

Kapcsolódó oktatóanyagok