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 -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 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: ZmniejszenietermsBefore/Afterobniża zużycie pamięci przy bardzo dużych dokumentach.
Typowe problemy i rozwiązywanie
| Objaw | Prawdopodobna przyczyna | Rozwiązanie |
|---|---|---|
| No results returned | Index not built or pointing to wrong folder | Verify Utils.DocumentsPath and run IndexingDocuments.addDirectories again |
| Highlight output is empty | HighlightOptions limits too low or document encoding issue | Increase termsTotal or ensure the document’s encoding is supported |
| Port conflict error | basePort already in use | Choose a different port number (e.g., 49117) |
| License exception | Missing or expired license file | Place 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