Zvýraznění výsledků vyhledávání v Javě pomocí GroupDocs.Search

Pokud máte dost manuálního procházení nekonečných dokumentů, highlight search results java nabízí rychlý a spolehlivý způsob, jak získat přesně to, co potřebujete. V tomto tutoriálu vás provedeme nastavením distribuované vyhledávací sítě, indexováním souborů, spouštěním dotazů a nakonec zvýrazněním shod přímo v dokumentech. Na konci budete mít produkčně připravené řešení, které lze škálovat napříč více uzly a okamžitě zvýrazní relevantní termíny.

Rychlé odpovědi

  • Co znamená “highlight search results java”? Jedná se o programové označování nalezených klíčových slov v dokumentech při použití Java knihoven, jako je GroupDocs.Search.
  • Mohu zvýraznit více termínů ve stejném dokumentu? Ano – použijte HighlightOptions k definování, kolik termínů před a po každé shodě se zobrazí.
  • Potřebuji licenci pro spuštění tohoto příkladu? Pro testování stačí bezplatná zkušební nebo dočasná licence; pro produkci je vyžadována plná licence.
  • Jaká verze Javy je požadována? Java 8 nebo novější.
  • Je tento přístup vhodný pro velké kolekce dokumentů? Rozhodně – vyhledávací síť rozděluje indexování a zátěž dotazů mezi uzly.

Co je Highlight Search Results Java?

Highlight search results java je proces, který vezme vyhledávací dotaz, najde odpovídající fragmenty ve vašich dokumentech a vizuálně je zvýrazní (např. obklopením značkami nebo vrácením jako zvýrazněných úryvků). To usnadňuje koncovým uživatelům vidět kontext každé shody, aniž by museli otevírat celý soubor.

Proč použít GroupDocs.Search pro zvýraznění?

GroupDocs.Search poskytuje hotový, vysoce výkonný engine, který podporuje desítky formátů souborů, distribuované indexování a vestavěné zvýrazňovače fragmentů. Odstraňuje potřebu psát vlastní parsery nebo spravovat nízkoúrovňovou vyhledávací infrastrukturu, což vám umožní soustředit se na poskytování plynulého uživatelského zážitku.

Požadavky

  • Java Development Kit (JDK) 8+ – ujistěte se, že java -version vrací 1.8 nebo vyšší.
  • Maven – pro správu závislostí.
  • GroupDocs.Search for Java 25.4 – verze použitá v tomto průvodci.
  • IDE, například IntelliJ IDEA nebo Eclipse (volitelné, ale doporučené).
  • Základní znalost Javy a síťových konceptů.

Nastavení GroupDocs.Search pro Javu

Knihovnu můžete do svého projektu přidat buď pomocí Maven, nebo stažením JAR souboru přímo.

Nastavení 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>

Přímé stažení

Alternatively, download the latest JAR from GroupDocs.Search for Java releases.

Kroky získání licence

  • Free Trial: Začněte s trial verzí pro prozkoumání základních funkcí.
  • Temporary License: Získejte prodlouženou testovací licenci na této stránce.
  • Purchase: Získejte plnou licenci pro produkční nasazení.

Základní inicializace a nastavení

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.");
    }
}

Průvodce implementací

Jak zvýraznit výsledky vyhledávání v Javě v distribuované síti

Konfigurace vyhledávací sítě

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 – kořenová složka obsahující soubory, které chcete indexovat.
  • basePort – TCP port pro komunikaci uzlů; vyberte volný.

Nasazení uzlů vyhledávací sítě

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 – pole všech běžících uzlů.
  • masterNode – koordinuje indexování a distribuci dotazů.

Přihlášení k událostem uzlu vyhledávací sítě

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);

Indexování adresářů v uzlu sítě

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);

Vyhledávání textu napříč uzly sítě

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.
  • Nahraďte "ipsum" libovolným termínem, který chcete najít.
  • Metoda highlightInDocument (ukázána níže) použije zvýraznění.

Zvýraznění více termínů v dokumentu – zvýraznění výsledků vyhledávání

Následující metoda ukazuje, jak zvýraznit fragmenty kolem každé shody. Také ukazuje, jak řídit počet okolních termínů, čímž splňuje sekundární klíčové slovo 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 – vrací úryvky v prostém textu; můžete přepnout na HTML pro bohatší UI.
  • HighlightOptions – řídí, kolik slov před a po každé shodě je zahrnuto (setTermsBefore, setTermsAfter).
  • maxFragments – omezuje počet úryvk.

Uzavření uzlů sítě

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

for (SearchNetworkNode node : nodes) {
    node.close();
}

Praktické aplikace

  • Enterprise Document Management: Centralizujte firemní soubory a umožněte zaměstnancům okamžitě najít relevantní smlouvy nebo politiky.
  • Legal Case Files: Rychle vyhledejte precedentní dokumenty zvýrazněním klíčových právních termínů.
  • R&D Knowledge Bases: Výzkumníci mohou prohledávat patenty nebo technické články a vidět zvýrazněné úryvky.
  • E‑commerce Catalogs: Umožněte zákazníkům najít produkty podle klíčového slova s zvýrazněnými shodami v popisech.
  • Library Systems: Čtenáři mohou prohledávat tisíce knih a zobrazit zvýrazněné úryvky bez otevírání každého souboru.

Úvahy o výkonu

  • Udržujte indexy aktuální: Přindexujte změněné soubory každou noc nebo použijte inkrementální aktualizace.
  • Využívejte více uzlů: Rozdělte zátěž indexování a dotazů, aby nedocházelo k úzkým hrdlům.
  • Ladění HighlightOptions: Snížení termsBefore/After snižuje spotřebu paměti u velmi velkých dokumentů.

Časté problémy a řešení

PříznakPravděpodobná příčinaŘešení
Nejsou vráceny žádné výsledkyIndex nebyl vytvořen nebo ukazuje na špatnou složkuOvěřte Utils.DocumentsPath a znovu spusťte IndexingDocuments.addDirectories
Výstup zvýraznění je prázdnýHighlightOptions jsou nastaveny příliš nízko nebo je problém s kódováním dokumentuZvyšte termsTotal nebo zajistěte, aby kódování dokumentu bylo podporováno
Chyba konfliktu portubasePort je již používánZvolte jiné číslo portu (např. 49117)
Výjimka licenceChybějící nebo neplatný licenční souborUmístěte platný soubor GroupDocs.Search.lic do kořenového adresáře aplikace

Často kladené otázky

Q: Mohu nasadit více uzlů vyhledávací sítě pro vyvážení zátěže?
A: Ano, nasazením několika uzlů se rozloží práce na indexování a dotazy, což zlepšuje škálovatelnost a dobu odezvy.

Q: Jak mohu zvýraznit více vyhledávacích termínů ve stejném dokumentu?
A: Předávejte seznam termínů metodě highlight a nakonfigurujte HighlightOptions, aby pro každou shodu zobrazovaly okolní slova.

Q: Je možné přihlásit se k událostem vyhledávání v reálném čase?
A: Rozhodně. Použijte SearchNetworkNodeEvents.subscribe(masterNode), abyste dostávali zpětné volání o průběhu indexování, provádění dotazů a chybách.

Q: Jaké formáty souborů GroupDocs.Search podporuje pro indexování a zvýraznění?
A: Více než 50 formátů, včetně DOCX, PDF, HTML, TXT, PPTX a dalších.

Q: Jak mohu zlepšit rychlost vyhledávání ve velmi velkých kolekcích?
A: Pravidelně aktualizujte indexy, distribuujte je napříč uzly a jemně dolaďte HighlightOptions, aby omezily velikost fragmentů.

Závěr

Podle tohoto průvodce máte nyní kompletní, produkčně připravené nastavení pro highlight search results java pomocí GroupDocs.Search. Můžete řešení škálovat napříč sítí, indexovat jakýkoli podporovaný typ dokumentu, spouštět rychlé dotazy a vracet zvýrazněné úryvky, které uživatelům pomáhají najít přesně to, co potřebují. Prozkoumejte další kroky – integraci výsledků do webového rozhraní, přidání faceted vyhledávání nebo kombinaci s OCR pro skenované PDF.


Poslední aktualizace: 2026-01-08
Testováno s: GroupDocs.Search for Java 25.4
Autor: GroupDocs