Jak nakonfigurovat GroupDocs Search Network pro Java
V dnešním rychle se rozvíjejícím digitálním prostředí jsou dovednosti configure groupdocs search network nezbytné pro každou organizaci, která potřebuje rychle a spolehlivě prohledávat miliony dokumentů. Dobře nakonfigurovaná vyhledávací síť rozkládá indexování a dotazy na více JVM uzlů, udržuje nízké odezvy a zajišťuje vysokou dostupnost. Tento tutoriál vás provede každým krokem – od nastavení Maven a aktivace licence po nasazení uzlů, předplatné událostí, indexování dokumentů a dokonce i vyhledávání založené na obrázcích – abyste mohli vytvořit připravenou produkční síť GroupDocs.Search v Javě.
Rychlé odpovědi
- Jaký je hlavní účel vyhledávací sítě? Rozdělit zátěž indexování a dotazů na více uzlů pro lepší škálovatelnost a spolehlivost.
- Který port GroupDocs.Search používá ve výchozím nastavení? Příklad používá port 49120, ale můžete zvolit libovolný volný port.
- Mohu přidávat nebo odebírat uzly bez výpadku? Ano—uzly mohou být dynamicky nasazeny nebo odebrány.
- Potřebuji licenci pro produkci? Pro produkční použití je vyžadována plná licence; zkušební licence jsou k dispozici pro hodnocení.
- Je vyhledávání obrázků podporováno ihned po instalaci? Ano—GroupDocs.Search poskytuje vestavěné porovnání hashů obrázků.
Co je vyhledávací síť?
SearchNetworkNode je jednotlivý uzel v clusteru, který hostuje kopii sdíleného indexu a zpracovává vyhledávací požadavky. Vyhledávací síť je soubor propojených instancí SearchNetworkNode, které sdílejí informace o indexování a společně odpovídají na dotazy. Tato architektura vám umožňuje zpracovávat obrovské kolekce dokumentů při zachování nízkých odezvových časů a umožňuje automatické přepnutí při výpadku uzlu.
Proč používat GroupDocs.Search pro Java?
Zatěžte svou Java aplikaci vyhledávačem, který dokáže configure groupdocs search network během několika minut, horizontálně škálovat a podporovat více než 30 formátů souborů – včetně PDF, DOCX, XLSX, PPTX a běžných typů obrázků. Benchmarky ukazují, že tříuzlový cluster může indexovat 500 000 dokumentů za méně než 30 minut na standardním serverovém hardwaru, přičemž latence dotazu zůstává pod 200 ms i při vysokém souběžném zatížení.
Předpoklady
- JDK 8+ nainstalováno na každém stroji, který bude spouštět uzel.
- IDE jako IntelliJ IDEA nebo Eclipse pro snadnou správu projektu.
- Maven pro řešení závislostí.
- Základní znalost Java sítí (TCP porty, firewally) a konceptů multithreadingu.
Požadované knihovny a závislosti
Přidejte repozitář GroupDocs a závislost do vašeho 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>
Alternativně stáhněte nejnovější verzi z GroupDocs.Search for Java releases.
Nastavení GroupDocs.Search pro Java
Instalace pomocí Maven
Úryvek Maven výše automaticky načte knihovnu do vašeho projektu.
Získání licence
- Free Trial – prozkoumejte základní funkce bez kreditní karty.
- Temporary License – prodloužené testovací období pro interní piloty.
- Full License – připravená pro produkci, neomezené používání a priorita v podpoře.
Základní inicializace a nastavení
třída SearchNetworkDeployment orchestruje vytvoření a správu vyhledávacího clusteru, zpracovává životní cyklus uzlů a sdílené zdroje. Než budete moci komunikovat s jakýmkoli uzlem, musíte vytvořit objekt SearchNetworkDeployment a nasměrovat jej na sdílenou složku indexu. Následující blok kódu (zachovaný z původního tutoriálu) ukazuje minimální bootstrap:
import com.groupdocs.search.*;
public class SearchSetup {
public static void main(String[] args) {
// Create an instance of Index with the path to store index data.
String indexPath = "path/to/index";
Index index = new Index(indexPath);
System.out.println("GroupDocs.Search initialized successfully.");
}
}
Průvodce implementací
Nyní se ponoříme do každého hlavního úkolu s jasnými, krok‑za‑krokem vysvětleními, která předcházejí původním místům kódu.
Jak nasadit uzly ve vyhledávací síti
Nasazení více uzlů rozkládá zátěž a zlepšuje odolnost vůči chybám. SearchNetworkNode představuje jednotlivou JVM instanci, která se podílí na vyhledávacím clusteru a zpracovává požadavky na indexování a dotazy. Spuštěním několika uzlů na po sobě jdoucích portech vytvoříte odolnou síť, kde každý uzel může obsluhovat klientské volání a sdílet společný index.
public class SearchNetworkDeployment {
public static void run() {
String basePath = "YOUR_DOCUMENT_DIRECTORY";
int basePort = 49120; // Change if necessary.
Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);
System.out.println("Deployed " + nodes.length + " search network nodes.");
}
}
Jak se přihlásit k událostem
Přihlášení k událostem vám poskytuje živý přehled o zdraví uzlů, postupu indexování a chybách. Třída SearchNetworkEvents poskytuje sadu zpětných volání, která jsou spouštěna při významných akcích, jako je dokončení indexování, selhání uzlu nebo vlastní oznámení. Registrací posluchačů na hlavním nebo pracovním uzlu umožníte monitorování v reálném čase a automatické reakce pro plynulý provoz sítě.
public class NodeEventSubscription {
public static void run() {
String basePath = "YOUR_DOCUMENT_DIRECTORY";
int basePort = 49120; // Adjust if needed.
Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);
SearchNetworkEvents.subscribe(nodes[0]);
System.out.println("Subscribed to events for the master node.");
}
}
Jak indexovat dokumenty
Efektivní indexování je základem rychlých výsledků vyhledávání. Když přidáte adresáře na hlavní uzel, engine prohledá každý soubor, extrahuje vyhledávatelný obsah a uloží jej do sdílené struktury indexu. Tento proces může běžet inkrementálně, aktualizuje pouze změněné soubory, což snižuje zátěž I/O a zajišťuje, že dotazy vždy odrážejí nejnovější verze dokumentů.
public class DocumentIndexing {
public static void run() {
String basePath = "YOUR_DOCUMENT_DIRECTORY";
int basePort = 49120; // Change if there is a conflict.
Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);
IndexingDocuments.addDirectories(nodes[0], "YOUR_DOCUMENT_DIRECTORY");
System.out.println("Added directories to master node's index.");
}
}
Jak provést vyhledávání obrázků
GroupDocs.Search podporuje porovnání hashů obrázků, což vám umožní najít vizuálně podobná aktiva. Třída SearchImage zapouzdřuje soubor obrázku a vypočítá percepční hash, který lze porovnat s hashi uloženými v indexu. Nastavením maximálního rozdílu hashů řídíte toleranci vizuální podobnosti, což umožňuje spolehlivé vyhledávání duplicitních nebo souvisejících obrázků v celém úložišti.
public class ImageSearch {
public static void run() {
String basePath = "YOUR_DOCUMENT_DIRECTORY";
int basePort = 49120; // Modify if needed.
Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);
SearchImage searchImage = SearchImage.create("YOUR_DOCUMENT_DIRECTORY/ic_arrow_back_black_18dp.png");
imageSearch(nodes[0], searchImage, 8);
}
}
Jak nakonfigurovat síťové porty
Pokud vaše prostředí již používá port 49120, můžete jej změnit na libovolný volný TCP port. Parametr basePort určuje počáteční číslo portu pro cluster a každý následující uzel automaticky tuto hodnotu inkrementuje. Ujistěte se, že zvolený port je otevřený ve firewallu, není obsazen jinými službami a je konzistentně nastaven na všech uzlech pro zachování bezproblémové komunikace.
int customPort = 50000; // Example of a custom port.
Configuration configuration = ConfiguringSearchNetwork.configure(basePath, customPort);
Časté problémy a řešení
| Příznak | Pravděpodobná příčina | Řešení |
|---|---|---|
| Uzlům se nedaří spustit | Konflikt portu | Zvolte jiný basePort a aktualizujte pravidla firewallu. |
| Indexování je pomalé | Nedostatečná šířka pásma I/O | Použijte SSD úložiště a povolte inkrementální indexování. |
| Přihlášení k událostem neprobíhá | Chybí registrace obslužné rutiny události | Ujistěte se, že SearchNetworkEvents.subscribe(node) je voláno před zahájením jakéhokoli indexování. |
| Vyhledávání obrázků nevrací žádné výsledky | Rozdíl hashů je příliš nízký | Zvyšte povolený rozdíl hashů (např. z 4 na 8). |
Často kladené otázky
Q: Jak optimalizovat výkon indexování v síti GroupDocs.Search?
A: Používejte inkrementální indexování, uložte index na rychlé SSD, a přidělte dostatečnou haldu paměti pro JVM.
Q: Mohu přidávat nebo odebírat uzly bez restartování celé vyhledávací sítě?
A: Ano—uzly mohou být dynamicky nasazeny nebo odebrány. Po přidání uzlu znovu zavolejte SearchNetworkDeployment.deploy pro obnovení pohledu na cluster.
Q: Jak přihlášení k událostem zlepšuje správu sítě?
A: Přihlášené události poskytují upozornění v reálném čase na změny stavu uzlů, postup indexování a chyby, což umožňuje proaktivní řešení problémů.
Q: Je možné současně prohledávat různé formáty dokumentů?
A: Rozhodně. GroupDocs.Search podporuje PDF, Word, Excel, PowerPoint, obrázky a mnoho dalších formátů v jednom dotazu.
Q: Jak bezpečná jsou data v síti GroupDocs.Search?
A: Bezpečnost závisí na vaší infrastruktuře. Implementujte SSL/TLS pro komunikaci mezi uzly, omezte přístup k síti a dodržujte osvědčené postupy pro ochranu dat.
Poslední aktualizace: 2026-06-27
Testováno s: GroupDocs.Search 25.4 for Java
Autor: GroupDocs