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říznakPravděpodobná příčinaŘešení
Uzlům se nedaří spustitKonflikt portuZvolte jiný basePort a aktualizujte pravidla firewallu.
Indexování je pomaléNedostatečná šířka pásma I/OPouž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álostiUjistě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ýsledkyRozdí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

Související tutoriály