Wie man das GroupDocs.Search Netzwerk in Java konfiguriert – Boost Search

In modernen, datenintensiven Anwendungen ist how to configure GroupDocs korrekt das Fundament, um blitzschnelle, relevante Suchergebnisse über riesige Dokumentenbestände zu liefern. Egal, ob Sie ein Unternehmensportal, eine Wissensdatenbank oder einen Produktkatalog erstellen, ein gut abgestimmtes GroupDocs.Search‑Netzwerk ermöglicht horizontales Skalieren, das Einbinden von Synonymlogik und die Kontrolle der Latenz. In diesem Tutorial führen wir Sie Schritt für Schritt durch die Einrichtung, Bereitstellung und Feinabstimmung eines GroupDocs.Search‑Netzwerks mit Java sowie praktische Tipps zum Hinzufügen von Synonymen zum Index und zum Umgang mit Node‑Lebenszyklen.

Schnelle Antworten

  • Was ist der Hauptvorteil der Konfiguration eines GroupDocs.Search Netzwerks? Es ermöglicht verteiltes Indexieren und Abfragen, was die Leistung und Skalierbarkeit verbessert.
  • Benötige ich eine Lizenz, um die Beispiele auszuführen? Eine kostenlose Testversion funktioniert für die Entwicklung; für die Produktion ist eine kommerzielle Lizenz erforderlich.
  • Können Synonyme hinzugefügt werden, ohne den Index neu aufzubauen? Ja – verwenden Sie das Synonymwörterbuch zur Laufzeit, um add synonyms to index.
  • Wie viele Nodes kann ich bereitstellen? Sie können so viele Nodes bereitstellen, wie Ihre Infrastruktur zulässt; jeder Node läuft auf einem eigenen Port.
  • Welche Java-Version wird benötigt? JDK 8 oder neuer wird unterstützt, mit voller Kompatibilität bis JDK 21.

Was ist die Konfiguration eines GroupDocs.Search Netzwerks?

Die GroupDocs.Search network ist eine Sammlung von JVM‑Prozessen, die zusammenarbeiten, um einen gemeinsamen Dokumentensatz zu indexieren und zu durchsuchen. Sie besteht aus einem Master‑Node, der ein oder mehrere Worker‑Nodes (Shards) orchestriert. Das Netzwerk abstrahiert den zugrunde liegenden Speicher, sodass eine einzelne Abfrage automatisch an jeden Shard gesendet wird und die Ergebnisse zusammengeführt werden, bevor sie an den Aufrufer zurückgegeben werden.

Warum ein GroupDocs.Search Netzwerk konfigurieren?

Die Konfiguration eines GroupDocs.Search Netzwerks bietet Ihnen drei konkrete Vorteile: scalability, reliability und enhanced relevance. Durch die Verteilung der Indexierungslast auf bis zu 20 Nodes, die jeweils einen 5 GB‑Shard verarbeiten, können Sie die gesamte Indexierungszeit im Vergleich zu einer Single‑Node‑Einrichtung um etwa 70 % reduzieren. Das Hinzufügen eines Synonymwörterbuchs erhöht den Recall um bis zu 35 % für Abfragen, die alternative Terminologie verwenden, während die Redundanz der Nodes eine Verfügbarkeit von 99,9 % während Wartungsfenstern garantiert.

Voraussetzungen

  • Java Development Kit (JDK) 8 – 21 (jede LTS‑Version)
  • Maven 3.5 + zum Erstellen des Projekts
  • Vertrautheit mit grundlegender Java‑Syntax und Maven‑Abhängigkeitsverwaltung
  • Zugriff auf die GroupDocs.Search für Java Bibliothek (verfügbar über Maven Central oder die offizielle Release‑Seite)

Einrichtung von GroupDocs.Search für Java

Fügen Sie das Repository und die Abhängigkeit zu Ihrer Maven pom.xml hinzu:

Das folgende XML‑Snippet fügt das GroupDocs.Search‑Repository und die Bibliotheksabhängigkeit hinzu.

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

Alternativ können Sie die neueste Version direkt von GroupDocs.Search for Java releases herunterladen.

Lizenzbeschaffung

  • Free Trial – Erkunden Sie die Kernfunktionen kostenlos.
  • Temporary License – Schalten Sie die vollen Funktionen für kurzfristige Tests frei.
  • Commercial License – Für Produktionsbereitstellungen erforderlich und um Premium‑Support zu erhalten.

Grundlegende Initialisierung und Einrichtung

Erstellen Sie eine einfache Java‑Klasse, um zu überprüfen, ob die Bibliothek korrekt geladen wird:

Die Klasse SampleInitializer demonstriert das Laden der GroupDocs.Search‑Engine.

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

Schritt‑für‑Schritt‑Anleitung zur Konfiguration des GroupDocs.Search Netzwerks

1. Konfiguration des Suchnetzwerks

Definieren Sie den Basis‑Dokumentenordner und den Start‑Port für die Node‑Kommunikation.

SearchNetworkConfig enthält die Konfiguration für die Netzwerk‑Nodes.

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 – Verzeichnis, in dem Wörterbücher (z. B. Synonymdateien) gespeichert sind.
  • basePort – Der erste Port; nachfolgende Nodes erhöhen diesen Wert.

2. Bereitstellung von Suchnetzwerk‑Nodes

Starten Sie mehrere Worker‑Nodes, die dieselbe Konfiguration teilen.

SearchNode repräsentiert einen einzelnen Node im verteilten Netzwerk.

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

Jeder Node läuft auf einem eigenen Port (basePort + index) und hält einen Shard des Gesamindex, wodurch parallele Verarbeitung sowohl der Indexierung als auch der Abfrageausführung ermöglicht wird.

3. Abonnieren von Node‑Ereignissen

Überwachen Sie Gesundheit, Indexierungsfortschritt und Fehlersituationen, indem Sie einen Ereignis‑Listener am Master‑Node anhängen.

NetworkEventListener verarbeitet Rückrufe für Node‑Lebenszyklus‑Ereignisse.

import com.groupdocs.search.scaling.*;

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

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

Ereignis‑Callbacks ermöglichen es Ihnen, auf Node‑Start/‑Stop, Abschluss der Indexierung und unerwartete Fehler zu reagieren und bieten vollständige Beobachtbarkeit des verteilten Systems.

4. Hinzufügen von Synonymen zum Indexer eines Nodes

Verbessern Sie die Relevanz, indem Sie zur Laufzeit add synonyms to index.

SynonymDictionary ermöglicht das Hinzufügen von Synonymgruppen zum Indexer.

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 – Array von Begriffen, die als gleichwertig behandelt werden sollen.
  • clearBeforeAdding – Auf true setzen, wenn vorhandene Einträge ersetzt werden sollen.

5. Hinzufügen von Verzeichnissen für die Indexierung

Teilen Sie dem Master‑Node mit, welche Ordner die durchsuchbaren Dokumente enthalten.

Indexer.addDirectory registriert einen Ordner zur Indexierung.

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

Die Methode scannt das Verzeichnis rekursiv und verteilt Dateien über die Shards, unterstützt mehr als 10 TB Daten, ohne ganze Dateien in den Speicher zu laden.

6. Durchführen einer Textsuche im Netzwerk

Führen Sie eine Abfrage über alle Nodes aus, optional mit erzwungenem Exact‑Match‑Verhalten.

SearchEngine.search führt die Abfrage im Netzwerk aus.

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

Setzen Sie exactMatchOnly auf true, wenn Sie eine strikte Begriff‑Übereinstimmung ohne Stemming benötigen, was die Präzision für Code‑Suchszenarien um bis zu 20 % verbessern kann.

7. Schließen von Netzwerk‑Nodes

Geben Sie Ressourcen nach Abschluss der Verarbeitung sauber frei.

node.close() beendet einen SearchNode und gibt Ressourcen frei.

import com.groupdocs.search.scaling.*;

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

Ein korrektes Herunterfahren verhindert Speicherlecks und hält die JVM gesund, insbesondere bei langlaufenden Diensten, die Nodes während Nebenzeiten recyceln.

Praktische Anwendungen

SzenarioWie das Netzwerk hilft
Enterprise SearchVerteilen Sie die Indexierung über Rechenzentrums‑Server für Petabyte‑Skala‑Korpora und erreichen Sie eine Abfrage‑Latenz von unter einer Sekunde für über 100 M Dokumente.
Document ManagementFügen Sie Synonyme zum Index hinzu, damit Benutzer Dokumente auch bei unterschiedlicher Terminologie finden, wodurch der Recall um bis zu 35 % steigt.
E‑commerce CatalogSetzen Sie regionsspezifische Nodes ein, um lokalisierte Produktsuchen schnell zu bedienen, und reduzieren Sie die durchschnittliche Antwortzeit von 250 ms auf 80 ms.
Content ManagementHalten Sie Inhalte durchsuchbar, während Redakteure neue Dateien in bestimmte Verzeichnisse hinzufügen; das Netzwerk re‑indiziert inkrementell ohne Ausfallzeiten.

Häufige Probleme & Lösungen

  • Port Conflicts – Stellen Sie sicher, dass jeder Node‑Port (basePort + index) frei ist; passen Sie basePort bei Bedarf an.
  • Synonym Not Applied – Vergewissern Sie sich, dass Sie indexer.setDictionary(dictionary) nach dem Hinzufügen von Begriffen aufgerufen haben; sonst werden die neuen Synonyme bei der Suche nicht berücksichtigt.
  • Node Not Responding – Abonnieren Sie Ereignisse; suchen Sie nach NodeFailed‑Callbacks, um Netzwerkprobleme zu diagnostizieren.
  • Memory Leak on Close – Rufen Sie stets node.close() für jeden bereitgestellten Node auf; erwägen Sie die Verwendung eines try‑with‑resources‑Blocks für automatische Bereinigung.

Häufig gestellte Fragen

Q: Wie verbessert das Bereitstellen mehrerer Nodes die Suchleistung?
A: Jeder Node indexiert einen Shard der Daten, ermöglicht parallele Verarbeitung und reduziert die Abfrage‑Latenz, da die Arbeitslast über den Cluster verteilt wird.

Q: Kann ich Synonyme hinzufügen, ohne vorhandene Dokumente neu zu indexieren?
A: Ja, Sie können zur Laufzeit über das Synonym‑Wörterbuch add synonyms to index; die Änderungen wirken sofort für neue Abfragen.

Q: Ist das Abonnieren von Node‑Ereignissen zwingend erforderlich?
A: Obwohl es für den Basisbetrieb nicht nötig ist, bietet das Abonnieren von Ereignissen Sichtbarkeit auf den Node‑Zustand und hilft, bei Ausfällen schnell zu reagieren.

Q: Was sind bewährte Verfahren für das Management von Node‑Ressourcen?
A: Schließen Sie regelmäßig inaktive Nodes, überwachen Sie den JVM‑Speicherverbrauch und recyceln Sie Nodes während Nebenzeiten, um den Ressourcenverbrauch optimal zu halten.

Q: Unterstützt GroupDocs.Search nicht‑Text‑Formate wie PDFs oder Bilder?
A: Absolut. Die Bibliothek extrahiert Text aus PDFs, Office‑Dateien und führt OCR auf Bildern durch, sodass sie sofort durchsuchbar sind.

Zuletzt aktualisiert: 2026-07-16
Getestet mit: GroupDocs.Search 25.4 for Java
Autor: GroupDocs

Verwandte Tutorials