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 uwydatniać istotne terminy.

Szybkie odpowiedzi

  • Co oznacza „highlight search results java”? Odnosi się do programowego oznaczania znalezionych słów kluczowych w dokumentach przy użyciu bibliotek Java, takich jak GroupDocs.Search.
  • Czy mogę wyróżnić wiele terminów w tym samym dokumencie? Tak – użyj HighlightOptions, aby określić, ile terminów przed/po każdym dopasowaniu ma być wyświetlonych.
  • Czy potrzebuję licencji, aby uruchomić ten przykład? Darmowa wersja próbna lub tymczasowa licencja działa w testach; pełna licencja jest wymagana w produkcji.
  • Jaka wersja Java jest wymagana? Java 8 lub nowsza.
  • Czy to podejście jest odpowiednie dla dużych zbiorów dokumentów? Absolutnie – sieć wyszukiwania rozdziela indeksowanie i obciążenie 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 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 oraz 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 -version zwraca 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 Java

Możesz dodać bibliotekę do swojego projektu zarówno za pomocą Maven, jak i pobierając plik JAR bezpośrednio.

Konfiguracja Maven

Add the repository and dependency to your 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 plik 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 tej strony.
  • Purchase: Uzyskaj pełną licencję do wdrożeń produkcyjnych.

Podstawowa inicjalizacja i konfiguracja

Create an Index instance that points to a folder where the search index will be stored:

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

First, define where your documents live and which port the network will use.

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 nieużywany.

Wdrażanie węzłów sieci wyszukiwania

Deploy one or more nodes based on the configuration. The first node becomes the master.

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

Attach listeners to the master node to receive real‑time notifications (e.g., when indexing completes).

import com.groupdocs.search.scaling.events.*;

SearchNetworkNodeEvents.subscribe(masterNode);

Indeksowanie katalogów w węźle sieci

Point the node to the folder(s) you want to index. The helper class Utils.DocumentsPath resolves to the sample data folder.

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

Run a query against all nodes and retrieve the matching documents.

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.
  • Zamień "ipsum" na dowolny termin, który chcesz znaleźć.
  • Metoda highlightInDocument (pokazana poniżej) zastosuje wyróżnienie.

Wyróżnianie wielu terminów w dokumencie – wyróżnianie wyników wyszukiwania

The following method demonstrates how to highlight fragments around each match. It also shows how to control the number of surrounding terms, satisfying the secondary keyword 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/po każdym dopasowaniu jest uwzględniane (setTermsBefore, setTermsAfter).
  • maxFragments – ogranicza liczbę fragmentów wyświetlanych na dokument.

Zamykanie’re done, shut down every node to free resources.

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 publikacje techniczne i widzieć 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: Przeprowadzaj ponowne indeksowanie zmienionych plików co noc lub używaj aktualizacji przyrostowych.
  • Leverage multiple nodes: Rozdzielaj obciążenie indeksowania i zapytań na wiele węzłów, aby uniknąć wąskich gardeł.
  • Tune HighlightOptions: Zmniejszenie termsBefore/After obniża zużycie pamięci przy bardzo dużych dokumentach.

Typowe problemy i rozwiązywanie

ObjawPrawdopodobna przyczynaRozwiązanie
No results returnedIndex not built or pointing to wrong folderVerify Utils.DocumentsPath and run IndexingDocuments.addDirectories again
Highlight output is emptyHighlightOptions limits too low or document encoding issueIncrease termsTotal or ensure the document’s encoding is supported
Port conflict errorbasePort already in useChoose a different port number (e.g., 49117)
License exceptionMissing or expired license filePlace a valid GroupDocs.Search.lic file in the application root

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 indeksowanie i zapytania, 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 w zakresie 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, rozdzielaj je na węzły i precyzyjnie dostosuj HighlightOptions, aby ograniczyć rozmiar fragmentów.

Podsumowanie

Postępując zgodnie z tym przewodnikiem, masz teraz kompletną, gotową do produkcji konfigurację highlight search results java przy użyciu GroupDocs.Search. Możesz skalować rozwiązanie w sieci, indeksować dowolny obsługiwany typ dokumentu, wykonywać szybkie zapytania i zwracać wyróżnione fragmenty, które pomagają użytkownikom znaleźć dokładnie to, czego potrzebują. Zbadaj kolejne kroki — integrację wyników z interfejsem webowym, dodanie wyszukiwania fasetowego lub połączenie z OCR dla zeskanowanych PDF‑ów.


Ostatnia aktualizacja: 2026-01-08
Testowane z: GroupDocs.Search for Java 25.4
Autor: GroupDocs