Wyróżnianie wyników wyszukiwania Java przy użyciu GroupDocs.Search
Jeśli masz dość ręcznego przeszukiwania niekończących się dokumentów, highlight search results java oferuje szybki, niezawodny sposób na wyświetlenie dokładnie tego, czego potrzebujesz. W tym samouczku przeprowadzimy konfigurację rozproszonej sieci wyszukiwania, indeksowanie plików, wykonywanie zapytań oraz ostateczne wyróżnianie dopasowań bezpośrednio w dokumentach. Po zakończeniu będziesz mieć gotowe do produkcji rozwiązanie, które może skalować się na wiele węzłów i natychmiast uwidaczniać istotne terminy.
Szybkie odpowiedzi
- What does “highlight search results java” mean? Odnosi się do programowego oznaczania znalezionych słów kluczowych w dokumentach przy użyciu bibliotek Java, takich jak GroupDocs.Search.
- Can I highlight multiple terms in the same document? Tak – użyj
HighlightOptions, aby określić, ile terminów przed i po każdym dopasowaniu ma być wyświetlonych. - Do I need a license to run this example? Darmowa wersja próbna lub tymczasowa licencja działa w testach; pełna licencja jest wymagana w produkcji.
- Which Java version is required? Java 8 lub nowsza.
- Is this approach suitable for large document collections? Absolutnie – sieć wyszukiwania rozdziela obciążenie indeksowania i zapytań na węzły.
Czym jest Highlight Search Results Java?
Highlight search results java to proces przyjmowania zapytania wyszukiwania, znajdowania pasujących fragmentów w dokumentach i wizualnego podkreślania tych fragmentów (np. poprzez otaczanie ich znacznikami lub zwracanie ich jako wyróżnione fragmenty). Ułatwia to użytkownikom końcowym zobaczenie kontekstu każdego dopasowania bez otwierania całego pliku.
Dlaczego wyróżnianie wyników wyszukiwania Java ma znaczenie
Używanie highlight search results java poprawia doświadczenie użytkownika, pokazując dokładnie, gdzie pojawia się termin, skraca czas spędzany na otwieraniu nieistotnych plików i pomaga zespołom ds. zgodności szybko zlokalizować wrażliwe informacje. W połączeniu z rozproszoną siecią wyszukiwania rozwiązanie pozostaje responsywne, nawet gdy korpus dokumentów rośnie do milionów.
Dlaczego używać GroupDocs.Search do wyróżniania?
GroupDocs.Search zapewnia gotowy, wysokowydajny silnik, który obsługuje dziesiątki formatów plików, rozproszone indeksowanie i wbudowane wyróżniacze fragmentów. Usuwa konieczność pisania własnych parserów czy zarządzania niskopoziomową infrastrukturą wyszukiwania, pozwalając skupić się na dostarczaniu płynnego doświadczenia użytkownika.
Wymagania wstępne
- Java Development Kit (JDK) 8+ – upewnij się, że
java -versionzwraca 1.8 lub wyższą wersję. - Maven – do zarządzania zależnościami.
- GroupDocs.Search for Java 25.4 – wersja używana w całym przewodniku.
- IDE, takie jak IntelliJ IDEA lub Eclipse (opcjonalne, ale zalecane).
- Podstawowa znajomość Javy i koncepcji sieciowych.
Konfiguracja GroupDocs.Search dla Javy
Możesz dodać bibliotekę do projektu zarówno przez Maven, jak i pobierając plik JAR bezpośrednio.
Konfiguracja Maven
Dodaj repozytorium i zależność do swojego pom.xml:
<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>
Bezpośrednie pobranie
Alternatywnie pobierz najnowszy JAR z GroupDocs.Search for Java releases.
Kroki uzyskania licencji
- Free Trial: Rozpocznij od wersji próbnej, aby zapoznać się z podstawowymi funkcjami.
- Temporary License: Uzyskaj rozszerzoną licencję testową ze strony.
- Purchase: Uzyskaj pełną licencję do wdrożeń produkcyjnych.
Podstawowa inicjalizacja i konfiguracja
Utwórz instancję Index, która wskazuje folder, w którym będzie przechowywany indeks wyszukiwania:
import com.groupdocs.search.*;
public class SearchSetup {
public static void main(String[] args) {
// Create an instance of Index
Index index = new Index("path/to/index/directory");
System.out.println("GroupDocs.Search initialized successfully.");
}
}
Przewodnik implementacji
Jak wyróżniać wyniki wyszukiwania Java w rozproszonej sieci
Konfiguracja sieci wyszukiwania
Najpierw określ, gdzie znajdują się Twoje dokumenty i którego portu sieć będzie używać.
import com.groupdocs.search.common.*;
import com.groupdocs.search.scaling.configuring.*;
String basePath = "YOUR_DOCUMENT_DIRECTORY/AdvancedUsage/Scaling/HighlightingResultsInNetwork/";
int basePort = 49116; // Change if port is busy
Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
basePath– folder główny zawierający pliki, które chcesz zindeksować.basePort– port TCP używany do komunikacji węzłów; wybierz wolny.
Wdrażanie węzłów sieci wyszukiwania
Wdroż jeden lub więcej węzłów zgodnie z konfiguracją. Pierwszy węzeł staje się masterem.
import com.groupdocs.search.scaling.*;
SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);
SearchNetworkNode masterNode = nodes[0];
nodes– tablica wszystkich uruchomionych węzłów.masterNode– koordynuje indeksowanie i dystrybucję zapytań.
Subskrypcja zdarzeń węzła sieci wyszukiwania
Dołącz nasłuchiwacze do węzła master, aby otrzymywać powiadomienia w czasie rzeczywistym (np. po zakończeniu indeksowania).
import com.groupdocs.search.scaling.events.*;
SearchNetworkNodeEvents.subscribe(masterNode);
Indeksowanie katalogów w węźle sieci
Wskaż węzłowi folder(y), które chcesz zindeksować. Klasa pomocnicza Utils.DocumentsPath wskazuje na folder z danymi przykładowymi.
import com.groupdocs.search.examples.Utils;
import com.groupdocs.search.options.*;
IndexingDocuments.addDirectories(masterNode, Utils.DocumentsPath);
Wyszukiwanie tekstu w całej sieci węzłów
Uruchom zapytanie przeciwko wszystkim węzłom i pobierz pasujące dokumenty.
import java.util.ArrayList;
import com.groupdocs.search.scaling.results.*;
ArrayList<NetworkFoundDocument> documents = TextSearchInNetwork.searchAll(masterNode, "ipsum", false);
highlightInDocument(masterNode, documents.get(0), 3); // Highlight results from the first found document.
- Zastąp
"ipsum"dowolnym terminem, który chcesz znaleźć. - Metoda
highlightInDocument(pokazana poniżej) zastosuje wyróżnienie.
Wyróżnianie wielu terminów w dokumencie – wyróżnianie wyników wyszukiwania
Poniższa metoda demonstruje, jak wyróżnić fragmenty wokół każdego dopasowania. Pokazuje również, jak kontrolować liczbę otaczających terminów, spełniając drugie słowo kluczowe highlight multiple terms document.
import com.groupdocs.search.highlighters.*;
import com.groupdocs.search.options.*;
public static void highlightInDocument(
SearchNetworkNode node,
NetworkFoundDocument document,
int maxFragments) {
Searcher searcher = node.getSearcher();
FragmentHighlighter highlighter = new FragmentHighlighter(OutputFormat.PlainText);
HighlightOptions options = new HighlightOptions();
options.setTermsAfter(5);
options.setTermsBefore(5);
options.setTermsTotal(15);
searcher.highlight(document, highlighter, options); // Perform highlighting on the document.
FragmentContainer[] result = highlighter.getResult();
for (FragmentContainer container : result) {
if (container.getCount() == 0) continue;
String[] fragments = container.getFragments();
int count = Math.min(fragments.length, maxFragments);
for (int j = 0; j < count; j++) {
// Print each fragment within the specified limit.
}
}
}
OutputFormat.PlainText– zwraca fragmenty w formacie zwykłego tekstu; możesz przełączyć na HTML dla bogatszego interfejsu.HighlightOptions– kontroluje, ile słów przed i po każdym dopasowaniu jest uwzględniane (setTermsBefore,setTermsAfter).maxFragments– ogranicza liczbę fragmentów wyświetlanych na dokument.
Zamykanie węzłów sieci
Po zakończeniu wyłącz wszystkie węzły, aby zwolnić zasoby.
for (SearchNetworkNode node : nodes) {
node.close();
}
Praktyczne zastosowania
- Enterprise Document Management: Centralizuj pliki firmowe i pozwól pracownikom natychmiast znajdować odpowiednie umowy lub polityki.
- Legal Case Files: Szybko wyświetlaj dokumenty precedensowe, wyróżniając kluczowe terminy prawne.
- R&D Knowledge Bases: Badacze mogą przeszukiwać patenty lub prace techniczne i zobaczyć wyróżnione fragmenty.
- E‑commerce Catalogs: Umożliw klientom znajdowanie produktów po słowie kluczowym z wyróżnionymi dopasowaniami w opisach.
- Library Systems: Czytelnicy mogą przeszukiwać tysiące książek i przeglądać wyróżnione fragmenty bez otwierania każdego pliku.
Rozważania dotyczące wydajności
- Keep indexes fresh: Reindeksuj zmienione pliki co noc lub używaj aktualizacji przyrostowych.
- Leverage multiple nodes: Rozdziel obciążenie indeksowania i zapytań, aby uniknąć wąskich gardeł.
- Tune
HighlightOptions: ZmniejszenietermsBefore/Afterobniża zużycie pamięci przy bardzo dużych dokumentach.
Typowe problemy i rozwiązywanie
| Objaw | Prawdopodobna przyczyna | Rozwiązanie |
|---|---|---|
| Brak wyników | Indeks nie został zbudowany lub wskazuje na niewłaściwy folder | Sprawdź Utils.DocumentsPath i ponownie uruchom IndexingDocuments.addDirectories |
| Wynik wyróżnienia jest pusty | Ustawienia HighlightOptions są zbyt niskie lub problem z kodowaniem dokumentu | Zwiększ termsTotal lub upewnij się, że kodowanie dokumentu jest obsługiwane |
| Błąd konfliktu portu | basePort jest już używany | Wybierz inny numer portu (np. 49117) |
| Wyjątek licencyjny | Brakujący lub wygasły plik licencji | Umieść prawidłowy plik GroupDocs.Search.lic w katalogu głównym aplikacji |
Najczęściej zadawane pytania
Q: Czy mogę wdrożyć wiele węzłów sieci wyszukiwania w celu równoważenia obciążenia?
A: Tak, wdrożenie kilku węzłów rozkłada pracę indeksowania i zapytań, zwiększając skalowalność i czas odpowiedzi.
Q: Jak wyróżnić wiele terminów wyszukiwania w tym samym dokumencie?
A: Przekaż listę terminów do metody highlight i skonfiguruj HighlightOptions, aby wyświetlać otaczające słowa dla każdego dopasowania.
Q: Czy można subskrybować zdarzenia wyszukiwania w czasie rzeczywistym?
A: Absolutnie. Użyj SearchNetworkNodeEvents.subscribe(masterNode), aby otrzymywać wywołania zwrotne dotyczące postępu indeksowania, wykonywania zapytań i błędów.
Q: Jakie formaty plików obsługuje GroupDocs.Search do indeksowania i wyróżniania?
A: Ponad 50 formatów, w tym DOCX, PDF, HTML, TXT, PPTX i inne.
Q: Jak mogę zwiększyć szybkość wyszukiwania w bardzo dużych zbiorach?
A: Regularnie aktualizuj indeksy, rozprowadzaj je na węzłach i precyzyjnie dostosuj HighlightOptions, aby ograniczyć rozmiar fragmentów.
Ostatnia aktualizacja: 2026-03-17
Testowano z: GroupDocs.Search for Java 25.4
Autor: GroupDocs