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
HighlightOptionsk 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 -versionvrací 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/Aftersnižuje spotřebu paměti u velmi velkých dokumentů.
Časté problémy a řešení
| Příznak | Pravděpodobná příčina | Řešení |
|---|---|---|
| Nejsou vráceny žádné výsledky | Index nebyl vytvořen nebo ukazuje na špatnou složku | Ověř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 dokumentu | Zvyšte termsTotal nebo zajistěte, aby kódování dokumentu bylo podporováno |
| Chyba konfliktu portu | basePort je již používán | Zvolte jiné číslo portu (např. 49117) |
| Výjimka licence | Chybějící nebo neplatný licenční soubor | Umí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