Nakonfigurujte síť GroupDocs.Search v Javě – Zrychlete vyhledávání

V dnešních aplikacích řízených daty je configure groupdocs search network klíčovým krokem k poskytování rychlých a přesných výsledků napříč obrovskými kolekcemi dokumentů. Ať už budujete podnikový vyhledávací portál nebo rozšiřujete existující řešení, dobře nakonfigurovaná síť GroupDocs.Search vám umožní horizontální škálování, přidání podpory synonym a udržení nízké latence. V tomto tutoriálu se naučíte, jak nastavit, nasadit a doladit síť GroupDocs.Search pomocí Javy, plus praktické tipy pro přidávání synonym do indexu a správu životního cyklu uzlů.

Rychlé odpovědi

  • Jaký je hlavní přínos konfigurace sítě GroupDocs.Search? Umožňuje distribuované indexování a dotazování, což zlepšuje výkon a škálovatelnost.
  • Potřebuji licenci pro spuštění příkladů? Bezplatná zkušební verze funguje pro vývoj; pro produkci je vyžadována komerční licence.
  • Lze přidat synonyma bez přestavby indexu? Ano—použijte slovník synonym za běhu k add synonyms to index.
  • Kolik uzlů mohu nasadit? Můžete nasadit tolik uzlů, kolik vaše infrastruktura umožňuje; každý uzel běží na vlastním portu.

Co je konfigurace sítě GroupDocs.Search?

Konfigurace sítě GroupDocs.Search znamená definování struktury složek, portů a nastavení uzlů, které umožňují více instancím JVM spolupracovat na indexování a vyhledávání. Toto nastavení vytváří master‑node, který koordinuje pracovníky (shardy) a zajišťuje, že dotazy jsou prováděny napříč celým datasetem.

Proč konfigurovat síť GroupDocs.Search?

  • Scalability – Rozdělit zátěž indexování mezi několik strojů.
  • Reliability – Uzly lze přidávat nebo odebírat bez výpadku.
  • Search relevance – Přidat synonyma do indexu pro bohatší výsledky.
  • Performance – Paralelní provádění dotazů snižuje dobu odezvy.

Požadavky

  • Java Development Kit (JDK) 8 nebo novější
  • Maven pro sestavení projektu
  • Základní znalost syntaxe Javy
  • Přístup k knihovně GroupDocs.Search for Java (staženo přes Maven nebo oficiální stránku vydání)

Nastavení GroupDocs.Search pro Javu

Přidejte úložiště a závislost do vašeho Maven 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 přímo z GroupDocs.Search for Java releases.

Získání licence

  • Free Trial – Prozkoumejte základní funkce zdarma.
  • Temporary License – Odemkněte plnou funkcionalitu pro krátkodobé testování.
  • Commercial License – Vyžadováno pro produkční nasazení.

Základní inicializace a nastavení

Vytvořte jednoduchou třídu v Javě pro ověření, že se knihovna načte správně:

import com.groupdocs.search.*;

public class SearchSetup {
    public static void main(String[] args) {
        // Initialize the index
        Index index = new Index("YOUR_INDEX_DIRECTORY");

        System.out.println("GroupDocs.Search is ready to use!");
    }
}

Průvodce krok za krokem pro konfiguraci sítě GroupDocs.Search

1. Konfigurace vyhledávací sítě

Definujte základní složku dokumentů a počáteční port pro komunikaci uzlů.

import com.groupdocs.search.dictionaries.*;
import com.groupdocs.search.scaling.configuring.*;

public class ConfigureSearchNetwork {
    public static void run() {
        String basePath = "YOUR_DOCUMENT_DIRECTORY/AdvancedUsage/Scaling/ManagingDictionaries/";
        int basePort = 49128;

        Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
        
        // Configuration details and setup logic
    }
}
  • basePath – Kde se nacházejí slovníky (např. soubory synonym).
  • basePort – První port; následné uzly se inkrementují od této hodnoty.

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

Spusťte více pracovních uzlů, které sdílejí stejné nastavení.

import com.groupdocs.search.scaling.*;

public class DeploySearchNetworkNodes {
    public static void run() {
        String basePath = "YOUR_DOCUMENT_DIRECTORY/AdvancedUsage/Scaling/ManagingDictionaries/";
        int basePort = 49128;
        Configuration configuration = new Configuration();

        SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);
        
        // Node deployment logic
    }
}

Každý uzel běží na vlastním portu (basePort + index) a drží shard celkového indexu.

3. Přihlášení k událostem uzlu

Sledujte stav, průběh indexování a chybové podmínky připojením posluchače událostí k master‑node.

import com.groupdocs.search.scaling.*;

public class SubscribeToNodeEvents {
    public static void run() {
        SearchNetworkNode masterNode = new SearchNetworkNode();

        SearchNetworkNodeEvents.subscribe(masterNode);
        
        // Event subscription logic
    }
}

Zpětné volání událostí vám umožní reagovat na spuštění/ukončení uzlu, dokončení indexování a neočekávané selhání.

4. Přidání synonym do indexeru uzlu

Zvyšte relevanci pomocí add synonyms to index za běhu.

import com.groupdocs.search.dictionaries.*;
import com.groupdocs.search.scaling.*;

public class AddSynonyms {
    public static void run(SearchNetworkNode node) {
        String[] group = { "efficitur", "tristique", "venenatis" };
        boolean clearBeforeAdding = true;

        Indexer indexer = node.getIndexer();
        int[] indices = node.getShardIndices();
        SynonymDictionary dictionary = indexer.getSynonymDictionary(indices[0]);

        if (clearBeforeAdding) {
            dictionary.clear();
        }
        dictionary.addRange(new String[][] { group });

        indexer.setDictionary(dictionary);
        
        // Synonym addition logic
    }
}
  • group – Pole termínů, které by měly být považovány za ekvivalenty.
  • clearBeforeAdding – Nastavte na true, pokud chcete nahradit existující položky.

5. Přidání adresářů pro indexování

Informujte master‑node, které složky obsahují dokumenty, které chcete zpřístupnit pro vyhledávání.

import com.groupdocs.search.scaling.*;
import com.groupdocs.search.examples.Utils;

public class AddDirectoriesForIndexing {
    public static void run(SearchNetworkNode masterNode) {
        String documentsPath = "YOUR_DOCUMENT_DIRECTORY/DocumentsPath";

        IndexingDocuments.addDirectories(masterNode, documentsPath);
        
        // Directory addition logic
    }
}
  • Metoda prohledá adresář rekurzivně a rozděluje soubory mezi shardy.

6. Provádění textového vyhledávání v síti

Spusťte dotaz napříč všemi uzly, volitelně vynutím chování exact‑match.

import com.groupdocs.search.scaling.*;

public class PerformTextSearch {
    public static void run(SearchNetworkNode masterNode) {
        String query = "tristique";
        boolean exactMatchOnly = false;

        TextSearchInNetwork.searchAll(masterNode, query, exactMatchOnly);
        exactMatchOnly = true;
        TextSearchInNetwork.searchAll(masterNode, query, exactMatchOnly);
        
        // Search execution logic
    }
}
  • Přepněte exactMatchOnly na true, když potřebujete přísné shodování termínů bez stemmingu.

7. Uzavření uzlů sítě

Uvolněte prostředky elegantně po dokončení zpracování.

import com.groupdocs.search.scaling.*;

public class CloseNetworkNodes {
    public static void run(SearchNetworkNode[] nodes) {
        for (SearchNetworkNode node : nodes) {
            node.close();
            
            // Node closure logic
        }
    }
}
  • Správné ukončení zabraňuje únikům paměti a udržuje JVM v dobrém stavu.

Praktické aplikace

ScenarioHow the network helps
Enterprise SearchRozdělit indexování mezi servery v datových centrech pro korpusy v rozsahu petabajtů.
Document ManagementPřidat synonyma do indexu, aby uživatelé našli dokumenty i při různých termínech.
E‑commerce CatalogNasadit regionálně specifické uzly pro rychlé poskytování lokalizovaného vyhledávání produktů.
Content ManagementUdržet obsah vyhledávatelný, zatímco editoři přidávají nové soubory do konkrétních adresářů.

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

  • Port Conflicts – Ujistěte se, že port každého uzlu (basePort + index) je volný; v případě potřeby upravte basePort.
  • Synonym Not Applied – Ověřte, že jste po přidání termínů zavolali indexer.setDictionary(dictionary).
  • Node Not Responding – Přihlaste se k událostem; hledejte zpětná volání NodeFailed pro diagnostiku problémů v síti.
  • Memory Leak on Close – Vždy zavolejte node.close() pro každý nasazený uzel.

Často kladené otázky

Q: Jak nasazení více uzlů zlepšuje výkon vyhledávání?
A: Každý uzel indexuje shard dat, což umožňuje paralelní zpracování a snižuje latenci dotazů, protože se zátěž sdílí.

Q: Mohu přidat synonyma bez přeindexování existujících dokumentů?
A: Ano, můžete add synonyms to index za běhu pomocí slovníku synonym; změny se projeví okamžitě pro nové dotazy.

Q: Je přihlášení k událostem uzlu povinné?
A: I když to není vyžadováno pro základní provoz, přihlášení k událostem vám poskytuje přehled o stavu uzlu a pomáhá rychle reagovat na selhání.

Q: Jaké jsou osvědčené postupy pro správu zdrojů uzlů?
A: Pravidelně uzavírejte nečinné uzly, monitorujte využití paměti JVM a recyklujte uzly během mimošpičkových hodin, aby byl spotřeba zdrojů optimální.

Q: Podporuje GroupDocs.Search ne‑textové formáty jako PDF nebo obrázky?
A: Rozhodně. Knihovna extrahuje text z PDF, Office souborů a dokonce provádí OCR na obrázcích, takže jsou vyhledávatelné ihned po instalaci.


Poslední aktualizace: 2026-01-16
Testováno s: GroupDocs.Search 25.4 pro Javu
Autor: GroupDocs