Podświetlanie tekstu Java przy użyciu GroupDocs.Search
W nowoczesnych aplikacjach korporacyjnych highlight text java jest niezbędny do przekształcania surowych wyników wyszukiwania w od razu czytelne informacje. Niezależnie od tego, czy tworzysz portal przeglądu prawnego, silnik badań akademickich, czy pulpit obsługi klienta, możliwość znajdowania i wizualnego podkreślania terminów zapytania oszczędza użytkownikom niezliczone sekundy ręcznego przeglądania. Ten samouczek pokazuje, jak używać GroupDocs.Search for Java do search documents java, index documents java, oraz zastosować podświetlanie zarówno na poziomie całego dokumentu, jak i fragmentu, przy użyciu zaledwie kilku linii kodu.
Szybkie odpowiedzi
- What does “search and highlight text” mean? Oznacza to znajdowanie terminów zapytania w dokumencie i ich wizualne podkreślanie (na przykład za pomocą kolorowego tła).
- Which library provides this capability? GroupDocs.Search for Java.
- Do I need a license? Darmowa wersja próbna działa w celach oceny; pełna licencja jest wymagana do użytku produkcyjnego.
- Can I customize highlight colors? Tak — dowolny kolor RGB można ustawić za pomocą
HighlightOptions. - Is fragment highlighting supported? Absolutnie; możesz określić terminy przed i po dopasowaniu, aby utworzyć zwięzłe fragmenty.
Jak podświetlać tekst Java w dokumentach
Aby podświetlić tekst Java w dokumentach, najpierw zbuduj indeks plików źródłowych przy użyciu odpowiednich ustawień kompresji, następnie wykonaj zapytanie wyszukiwania, aby znaleźć pożądane terminy, a na końcu wyeksportuj wyniki do HTML, PDF lub zwykłego tekstu, otaczając każde dopasowanie tagiem podświetlenia. Ten trzyetapowy proces zapewnia szybkie i dokładne podświetlanie w dużych zbiorach.
- Create an index z ustawieniami kompresji, które utrzymują niski rozmiar przechowywania.
- Execute a search używając ciągu zapytania, który chcesz podświetlić.
- Generate output (HTML, PDF lub zwykły tekst), w którym każde wystąpienie terminu zapytania jest otoczone tagiem podświetlenia.
Co to jest wyszukiwanie i podświetlanie tekstu?
Wyszukiwanie i podświetlanie tekstu to proces skanowania indeksowanej kolekcji pod kątem określonego zapytania, pobierania pasujących dokumentów i oznaczania każdego wystąpienia terminu zapytania w wyniku (HTML, PDF itp.). Ten wizualny sygnał pomaga użytkownikom szybko zauważyć istotne informacje.
Dlaczego warto używać GroupDocs.Search for Java?
GroupDocs.Search for Java zapewnia wysokowydajne indeksowanie (do 50 GB na indeks przy Compression.High), bogate podświetlanie, które działa na całych dokumentach i niestandardowych fragmentach, oraz obsługę wielu formatów dla ponad 30 typów plików — w tym DOCX, PDF, PPTX i TXT. Biblioteka oferuje także indeksowanie przyrostowe, umożliwiając dodawanie nowych plików bez przebudowy całego indeksu, co zmniejsza przestoje nawet o 80 % w dużych wdrożeniach.
Wymagania wstępne
- Java Development Kit (JDK) 8 lub nowszy.
- Maven do zarządzania zależnościami.
- IDE, takie jak IntelliJ IDEA lub Eclipse.
- Podstawowa znajomość składni Java.
Konfiguracja GroupDocs.Search for Java
Dodaj repozytorium GroupDocs i zależność do swojego pom.xml:
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-search</artifactId>
<version>25.4</version>
</dependency>
Możesz także pobrać najnowszy plik JAR bezpośrednio z oficjalnej strony: GroupDocs.Search for Java releases.
Uzyskanie licencji
Rozpocznij od wersji próbnej lub uzyskaj tymczasową licencję do oceny. W przypadku wdrożeń produkcyjnych zakup pełnej licencji, aby odblokować wszystkie funkcje.
Przewodnik implementacji
Implementacja podzielona jest na dwie praktyczne sekcje: highlighting in entire documents i highlighting in fragments. Obie sekcje zawierają niezbędne kroki do how to highlight Java dokumentów przy użyciu GroupDocs.Search.
Konfigurowanie ustawień indeksu
Przed indeksowaniem skonfiguruj magazyn, aby używał wysokiej kompresji — zmniejsza to zużycie dysku nawet o 70 %, zachowując jednocześnie szybkość wyszukiwania.
IndexSettings jest obiektem konfiguracyjnym kontrolującym sposób przechowywania indeksu na dysku. Ustaw Compression na Compression.High, aby włączyć tę optymalizację.Compression określa poziom kompresji danych stosowany do plików indeksu, przy czym Compression.High zapewnia maksymalne zmniejszenie rozmiaru.
Podświetlanie w całych dokumentach
Krok 1: utwórz i wypełnij indeks
Utwórz folder indeksu i dodaj wszystkie pliki źródłowe, które chcesz przeszukać. Klasa Index reprezentuje kontener przeszukiwalny.
Krok 2: wykonaj wyszukiwanie i zastosuj podświetlanie
Wyszukaj termin (np. ipsum) i wygeneruj plik HTML z podświetlonymi dopasowaniami. Użyj HighlightOptions, aby określić kolor podświetlenia i czy używać stylów inline.
HighlightOptions pozwala zdefiniować kolory pierwszego planu i tła, a także klasę CSS, która zostanie zastosowana do każdego podświetlonego terminu.
HtmlHighlighter generuje wyjście HTML z podświetlonymi terminami na podstawie podanych opcji.SearchResult zawiera listę pasujących dokumentów oraz pozycje każdego znalezionego terminu.
Direct answer: Załaduj swój indeks, wywołaj search("ipsum") i przekaż otrzymany SearchResult wraz z skonfigurowaną instancją HighlightOptions do HtmlHighlighter. Highlighter zwraca HTML, w którym każde wystąpienie „ipsum” jest otoczone tagiem <span> z wybranym kolorem tła.
Wyjaśnienie kluczowych opcji
- Compression – wysoka kompresja oszczędza miejsce na dysku.
- HighlightColor – ustaw dowolną wartość RGB, aby dopasować do palety UI.
- UseInlineStyles –
falsegeneruje czysty HTML, który może być stylowany globalnie przy użyciu CSS.
Podświetlanie w fragmentach
Krok 1: indeksowanie i wyszukiwanie (takie same jak wyżej)
Te same kroki indeksowania i wyszukiwania mają zastosowanie; ponownie używasz obiektów Index i SearchResult.
Krok 2: określ kontekst fragmentu i podświetl
Określ, ile terminów przed i po dopasowaniu ma się pojawić w każdym fragmencie przy użyciu FragmentOptions.
FragmentOptions kontroluje liczbę otaczających słów (termsBefore i termsAfter), które są włączane do każdego fragmentu, umożliwiając balansowanie kontekstu względem długości fragmentu.
Krok 3: pobierz i zapisz podświetlone fragmenty
Zbierz wygenerowane fragmenty i zapisz je do pliku HTML. Każdy fragment jest już podświetlony zgodnie z HighlightOptions, które skonfigurowałeś.
fragmentHighlighter jest narzędziem, które tworzy podświetlone fragmenty z SearchResult przy użyciu określonych opcji fragmentu i podświetlenia.
Direct answer: Po uzyskaniu SearchResult wywołaj fragmentHighlighter.highlight(searchResult, fragmentOptions, highlightOptions). Metoda zwraca listę fragmentów HTML, z których każdy zawiera dopasowany termin otoczony określoną liczbą słów kontekstowych i podświetlony wybranym kolorem.
Praktyczne zastosowania
- Legal document review – natychmiast podświetlaj ustawy, klauzule lub odniesienia do spraw w tysiącach umów.
- Academic research – wyświetlaj kluczową terminologię w dziesiątkach plików PDF i Word, skracając czas przeglądu literatury nawet o 60 %.
- Customer support – precyzyjnie wskazuj numery zamówień lub kody błędów w historii zgłoszeń, umożliwiając agentom szybsze rozwiązywanie problemów.
Rozważania dotyczące wydajności
- Index size – wysoka kompresja (
Compression.High) zmniejsza rozmiar dysku nawet o 70 % bez zauważalnego wpływu na opóźnienia. - Fragment context – większe wartości
termsBefore/Afterzwiększają czytelność fragmentu, ale mogą dodać 10–15 ms na zapytanie. - Memory management – monitoruj stertę JVM podczas indeksowania dużych korpusów; rozważ indeksowanie przyrostowe dla zestawów danych powyżej 2 GB, aby utrzymać zużycie pamięci poniżej 1 GB.
Typowe problemy i rozwiązania
- Indexing errors – sprawdź ścieżki plików i upewnij się, że aplikacja ma uprawnienia odczytu/zapisu do folderu indeksu.
- No highlights appear – potwierdź, że
UseInlineStylesodpowiada Twojemu formatowi wyjścia (HTML vs. PDF). - Color not applied – upewnij się, że wartości RGB mieszczą się w zakresie 0‑255 oraz że przeglądarka respektuje CSS inline lub dostarczoną klasę CSS.
Najczęściej zadawane pytania
Q: Jakie są korzyści z używania GroupDocs.Search for Java?
A: Oferuje szybkie, skalowalne indeksowanie, konfigurowalne podświetlanie oraz obsługę ponad 30 formatów dokumentów, przetwarzając pliki o 500 stronach w mniej niż 2 sekundy na typowym serwerze.
Q: Jak mogę zintegrować GroupDocs.Search z API REST?
A: Udostępnij metody wyszukiwania i podświetlania poprzez kontrolery Spring Boot, zwracając fragmenty HTML lub ładunki JSON zawierające podświetlone fragmenty.
Q: Czy biblioteka obsługuje pliki zabezpieczone hasłem?
A: Tak — podaj hasło podczas dodawania dokumentu do indeksu za pomocą addDocument(filePath, password).
Q: Czy mogę dostosować znacznik podświetlenia poza kolorem?
A: Oczywiście; możesz przypisać klasę CSS za pomocą options.setCssClass("myHighlight") i stylować ją globalnie, lub zmodyfikować wygenerowany HTML po podświetleniu.
Q: Jaką wersję przetestowano w tym przewodniku?
A: Kod został zweryfikowany względem GroupDocs.Search 25.4.
Q: Jak ustawić opcje podświetlenia java, aby używać klasy CSS zamiast stylów inline?
A: Wywołaj options.setUseInlineStyles(false) i zdefiniuj regułę CSS dla klasy, którą przypisujesz za pomocą options.setCssClass("myHighlight").
Q: Czy istnieje sposób na bezpośrednie podświetlanie terminów w wyjściu PDF?
A: Tak — GroupDocs.Search działa z wejściem PDF, a podświetlacz generuje HTML, który można osadzić w przeglądarce PDF lub przekonwertować ponownie do PDF przy użyciu GroupDocs.Conversion.
Ostatnia aktualizacja: 2026-09-27
Testowane z: GroupDocs.Search 25.4
Autor: 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
}