Hogyan konfiguráljuk a GroupDocs.Search hálózatot Java-ban – A keresés felgyorsítása

A modern, adatintenzív alkalmazásokban a GroupDocs helyes konfigurálása a kulcsa annak, hogy villámgyors, releváns keresési eredményeket nyújtsunk hatalmas dokumentumtárakban. Akár vállalati portált, tudásbázist vagy termékkatalógust építesz, egy jól hangolt GroupDocs.Search hálózat lehetővé teszi a horizontális skálázást, szinonima logika bevezetését, és a késleltetés kontrollálását. Ebben az útmutatóban lépésről lépésre végigvezetünk a GroupDocs.Search hálózat Java-val történő beállításán, telepítésén és finomhangolásán, valamint gyakorlati tanácsokat adunk a szinonimák indexhez való hozzáadásához és a csomópontok életciklusának kezeléséhez.

Gyors válaszok

  • Mi a fő előnye a GroupDocs.Search hálózat konfigurálásának? Lehetővé teszi a elosztott indexelést és lekérdezést, javítva a teljesítményt és a skálázhatóságot.
  • Szükségem van licencre a példák futtatásához? A ingyenes próba verzió fejlesztéshez használható; a kereskedelmi licenc a termeléshez kötelező.
  • Hozzáadhatók szinonimák az index újraépítése nélkül? Igen—használja a szinonima szótárat futásidőben a szinonimák indexhez adásához.
  • Hány csomópontot telepíthetek? Annyi csomópontot telepíthetsz, amennyit az infrastruktúrád megenged; minden csomópont saját porton fut.
  • Milyen Java verzió szükséges? A JDK 8 vagy újabb támogatott, teljes kompatibilitással a JDK 21-ig.

Mi a GroupDocs.Search hálózat konfigurálása?

A GroupDocs.Search hálózat egy JVM folyamatok gyűjteménye, amelyek együttműködnek egy megosztott dokumentumkészlet indexelésében és lekérdezésében. Egy master csomópontból áll, amely egy vagy több worker csomópontot (shardokat) irányít. A hálózat elrejti a háttértárolót, így egyetlen lekérdezés automatikusan minden shardra sugárzik, és az eredmények összeolvadnak, mielőtt visszaadnák a hívónak.

Miért konfiguráljunk egy GroupDocs.Search hálózatot?

A GroupDocs.Search hálózat konfigurálása három konkrét előnyt biztosít: skálázhatóság, megbízhatóság, és növelt relevancia. Az indexelési terhelés 20 csomópontig terjesztésével, mindegyik egy 5 GB shardot kezelve, a teljes indexelési idő körülbelül 70 %-kal csökkenthető egyetlen csomópontos beállításhoz képest. Egy szinonima szótár hozzáadása akár 35 %-kal növeli a visszahívást (recall) azoknál a lekérdezéseknél, amelyek alternatív terminológiát használnak, míg a csomópont redundancia 99,9 %-os üzemidőt garantál a karbantartási időszakok alatt.

Előfeltételek

  • Java Development Kit (JDK) 8 – 21 (bármely LTS verzió)
  • Maven 3.5 + a projekt felépítéséhez
  • Alapvető Java szintaxis és Maven függőségkezelés ismerete
  • Hozzáférés a GroupDocs.Search for Java könyvtárhoz (elérhető a Maven Centralon vagy a hivatalos kiadási oldalon)

A GroupDocs.Search beállítása Java-hoz

Adja hozzá a tárolót és a függőséget a Maven pom.xml fájlhoz:

A következő XML kódrészlet hozzáadja a GroupDocs.Search tárolót és a könyvtár függőségét.

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

Alternatívaként töltsd le a legújabb verziót közvetlenül a GroupDocs.Search for Java releases oldalról.

Licenc beszerzése

  • Free Trial – Fedezd fel a fő funkciókat költség nélkül.
  • Temporary License – Teljes funkcionalitás feloldása rövid távú teszteléshez.
  • Commercial License – Szükséges a termelési telepítésekhez és a prémium támogatás igénybevételéhez.

Alap inicializálás és beállítás

Hozz létre egy egyszerű Java osztályt a könyvtár helyes betöltésének ellenőrzéséhez:

A SampleInitializer osztály bemutatja a GroupDocs.Search motor betöltését.

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

Lépésről‑lépésre útmutató a GroupDocs.Search hálózat konfigurálásához

1. A keresési hálózat konfigurálása

Határozd meg az alap dokumentum mappát és a csomópontok kommunikációjának kezdő portját.

A SearchNetworkConfig tartalmazza a hálózati csomópontok konfigurációját.

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 – A könyvtár, ahol a szótárak (pl. szinonima fájlok) találhatók.
  • basePort – Az első port; a további csomópontok ettől az értéktől növekvő portot kapnak.

2. Keresési hálózati csomópontok telepítése

Indíts több worker csomópontot, amelyek ugyanazt a konfigurációt használják.

A SearchNode egy egyedi csomópontot képvisel az elosztott hálózatban.

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
    }
}

Minden csomópont saját porton (basePort + index) fut, és a teljes index egy shardját tartja, lehetővé téve az indexelés és a lekérdezés végrehajtásának párhuzamos feldolgozását.

3. Csomópont eseményekre feliratkozás

Figyeld az egészségi állapotot, az indexelés előrehaladását és a hibaállapotokat, egy eseményfigyelő csatolásával a master csomóponthoz.

A NetworkEventListener kezeli a csomópont életciklus eseményeinek visszahívásait.

import com.groupdocs.search.scaling.*;

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

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

Az esemény visszahívások lehetővé teszik a csomópont indítására/leállítására, az indexelés befejezésére és a váratlan hibákra való reagálást, teljes megfigyelhetőséget biztosítva az elosztott rendszer felett.

4. Szinonimák hozzáadása egy csomópont indexelőjéhez

Növeld a relevanciát a szinonimák indexhez adásával futásidőben.

A SynonymDictionary lehetővé teszi szinonima csoportok hozzáadását az indexelőhöz.

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 – A kifejezések tömbje, amelyeket ekvivalensnek kell tekinteni.
  • clearBeforeAdding – Állítsd true-ra, ha a meglévő bejegyzéseket felül akarod írni.

5. Könyvtárak hozzáadása az indexeléshez

Add meg a master csomópontnak, mely mappák tartalmazzák a kereshető dokumentumokat.

Az Indexer.addDirectory regisztrál egy mappát az indexeléshez.

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
    }
}

A metódus rekurzívan beolvassa a könyvtárat és a fájlokat shardokra osztja, több mint 10 TB adatot támogat anélkül, hogy teljes fájlokat memóriába töltene.

6. Szöveges keresés végrehajtása a hálózatban

Futtass egy lekérdezést az összes csomóponton, opcionálisan kényszerítve a pontos egyezést.

A SearchEngine.search futtatja a lekérdezést a hálózaton.

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
    }
}

Állítsd az exactMatchOnly értékét true-ra, ha szigorú kifejezés egyezésre van szükség stemming nélkül, ami akár 20 %-kal is javíthatja a pontosságot kódkeresési esetekben.

7. Hálózati csomópontok lezárása

Szabadítsd fel az erőforrásokat elegánsan, miután a feldolgozás befejeződött.

node.close() leállít egy SearchNode-ot és felszabadítja az erőforrásokat.

import com.groupdocs.search.scaling.*;

public class CloseNetworkNodes {
    public static void run(SearchNetworkNode[] nodes) {
        for (SearchNetworkNode node : nodes) {
            node.close();
            
            // Node closure logic
        }
    }
}

A megfelelő leállítás megakadályozza a memória szivárgásokat és egészségesen tartja a JVM-et, különösen a hosszú távú szolgáltatásoknál, amelyek a csúcsidőn kívül újrahasznosítják a csomópontokat.

Gyakorlati alkalmazások

SzenárióHogyan segít a hálózat
Vállalati keresésAz indexelés elosztása adatközponti szerverek között petabájt‑méretű korpuszokhoz, alulmásodperces lekérdezési késleltetés elérése 100 M+ dokumentum esetén.
DokumentumkezelésSzinonimák hozzáadása az indexhez, hogy a felhasználók változó terminológia esetén is megtalálják a dokumentumokat, ezáltal a visszahívás (recall) akár 35 %-kal növelhető.
E‑kereskedelmi katalógusRégióspecifikus csomópontok telepítése a lokalizált termékkeresések gyors kiszolgálásához, az átlagos válaszidő csökkentése 250 ms-ről 80 ms-re.
TartalomkezelésTartalom kereshető marad, miközben a szerkesztők új fájlokat adnak hozzá adott könyvtárakhoz; a hálózat fokozatosan újraindexel leállás nélkül.

Gyakori problémák és megoldások

  • Portütközések – Győződj meg arról, hogy minden csomópont portja (basePort + index) szabad; szükség esetén módosítsd a basePort-ot.
  • A szinonima nem alkalmazott – Ellenőrizd, hogy a kifejezések hozzáadása után hívtad-e a indexer.setDictionary(dictionary)-t; különben az új szinonimák nem lesznek figyelembe véve a keresés során.
  • A csomópont nem válaszol – Iratkozz fel az eseményekre; keresd a NodeFailed visszahívásokat a hálózati problémák diagnosztizálásához.
  • Memória szivárgás lezáráskor – Mindig hívd meg a node.close()-t minden telepített csomópontra; fontold meg a try‑with‑resources blokk használatát az automatikus takarításért.

Gyakran feltett kérdések

Q: Hogyan javítja a több csomópont telepítése a keresési teljesítményt?
A: Minden csomópont az adatok egy shardját indexeli, lehetővé téve a párhuzamos feldolgozást és csökkentve a lekérdezési késleltetést, mivel a terhelés a klaszter között oszlik meg.

Q: Hozzáadhatok szinonimákat anélkül, hogy újraindexelném a meglévő dokumentumokat?
A: Igen, a szinonimák indexhez adásával futásidőben a szinonima szótár segítségével; a változások azonnal érvénybe lépnek az új lekérdezéseknél.

Q: Kötelező-e feliratkozni a csomópont eseményekre?
A: Bár nem szükséges az alapműködéshez, az eseményfeliratkozás láthatóságot biztosít a csomópont állapotáról és segít gyorsan reagálni a hibákra.

Q: Mik a legjobb gyakorlatok a csomópont erőforrások kezelésére?
A: Rendszeresen zárd le az üresjárati csomópontokat, figyeld a JVM memóriahasználatát, és a csúcsidőn kívül újrahasznosítsd a csomópontokat az erőforrás-fogyasztás optimalizálása érdekében.

Q: Támogatja a GroupDocs.Search a nem‑szöveges formátumokat, például PDF-eket vagy képeket?
A: Teljes mértékben. A könyvtár szöveget nyer ki PDF-ekből, Office fájlokból, és OCR-t hajt végre képeken, így azok is kereshetők alapból.


Legutóbb frissítve: 2026-07-16
Tesztelve: GroupDocs.Search 25.4 for Java
Szerző: GroupDocs

Kapcsolódó oktatóanyagok