Wie man das GroupDocs Search Network für Java konfiguriert

In der heutigen schnelllebigen digitalen Umgebung sind configure groupdocs search network‑Fähigkeiten für jede Organisation unverzichtbar, die Millionen von Dokumenten schnell und zuverlässig durchsuchen muss. Ein gut konfiguriertes Suchnetzwerk verteilt Indexierungs‑ und Abfrage‑Workloads auf mehrere JVM‑Knoten, hält die Antwortzeiten niedrig und garantiert hohe Verfügbarkeit. Dieses Tutorial führt Sie durch jeden Schritt – von der Maven‑Einrichtung und Lizenzaktivierung über die Knoten‑Bereitstellung, Ereignis‑Abonnierung, Dokumenten‑Indexierung bis hin zur bildbasierten Suche – sodass Sie ein produktionsreifes GroupDocs.Search‑Netzwerk in Java aufbauen können.

Schnelle Antworten

  • Was ist der Hauptzweck eines Suchnetzwerks? Um die Indexierungs- und Abfrage‑Last auf mehrere Knoten zu verteilen, um bessere Skalierbarkeit und Zuverlässigkeit zu erreichen.
  • Welchen Port verwendet GroupDocs.Search standardmäßig? Das Beispiel verwendet den Port 49120, Sie können jedoch jeden freien Port wählen.
  • Kann ich Knoten hinzufügen oder entfernen, ohne Ausfallzeiten? Ja – Knoten können dynamisch bereitgestellt oder entfernt werden.
  • Benötige ich eine Lizenz für die Produktion? Für den Produktionseinsatz ist eine Voll‑Lizenz erforderlich; Testlizenzen stehen für Evaluierungen zur Verfügung.
  • Wird die Bildsuche sofort unterstützt? Ja – GroupDocs.Search bietet einen integrierten Bild‑Hash‑Vergleich.

Was ist ein Suchnetzwerk?

Ein SearchNetworkNode ist ein einzelner Knoten im Cluster, der eine Kopie des gemeinsamen Indexes hostet und Suchanfragen verarbeitet. Ein search network ist eine Sammlung miteinander verbundener SearchNetworkNode‑Instanzen, die Indexierungsinformationen teilen und gemeinsam auf Anfragen reagieren. Diese Architektur ermöglicht die Verarbeitung riesiger Dokumentensammlungen bei niedrigen Antwortzeiten und ermöglicht automatisches Failover, wenn ein Knoten offline geht.

Warum GroupDocs.Search für Java verwenden?

Rüsten Sie Ihre Java‑Anwendung mit einer Suchmaschine aus, die configure groupdocs search network in Minuten einrichten kann, horizontal skaliert und über 30 Dateiformate unterstützt – darunter PDF, DOCX, XLSX, PPTX und gängige Bildtypen. Benchmarks zeigen, dass ein Drei‑Knoten‑Cluster 500.000 Dokumente in weniger als 30 Minuten auf Standard‑Serverhardware indexieren kann, während die Abfrage‑Latenz selbst bei hoher gleichzeitiger Belastung unter 200 ms bleibt.

Voraussetzungen

  • JDK 8+ auf jedem Rechner installiert, der einen Knoten ausführen wird.
  • Eine IDE wie IntelliJ IDEA oder Eclipse für einfache Projektverwaltung.
  • Maven für die Auflösung von Abhängigkeiten.
  • Grundlegende Kenntnisse der Java‑Netzwerkprogrammierung (TCP‑Ports, Firewalls) und von Multithreading‑Konzepten.

Erforderliche Bibliotheken und Abhängigkeiten

Fügen Sie das GroupDocs‑Repository und die Abhängigkeit zu Ihrer pom.xml 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 von GroupDocs.Search for Java releases herunterladen.

Einrichtung von GroupDocs.Search für Java

Installation über Maven

Das obige Maven‑Snippet zieht die Bibliothek automatisch in Ihr Projekt.

Lizenzbeschaffung

  • Free Trial – Kernfunktionen ohne Kreditkarte testen.
  • Temporary License – erweiterte Testphase für interne Pilotprojekte.
  • Full License – produktionsreif, unbegrenzte Nutzung und Prioritäts‑Support.

Grundlegende Initialisierung und Einrichtung

Die Klasse SearchNetworkDeployment orchestriert die Erstellung und Verwaltung des Such‑Clusters, übernimmt den Lebenszyklus der Knoten und gemeinsame Ressourcen. Bevor Sie mit einem Knoten interagieren können, müssen Sie ein SearchNetworkDeployment‑Objekt erstellen und auf einen gemeinsamen Index‑Ordner verweisen. Der folgende Code‑Block (aus dem Original‑Tutorial übernommen) zeigt das minimale 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.");
    }
}

Implementierungs‑Leitfaden

Wir tauchen nun in jede Kernaufgabe ein, mit klaren, schritt‑für‑schritt Erklärungen, die den ursprünglichen Code‑Platzhaltern vorausgehen.

Wie man Knoten in einem Suchnetzwerk bereitstellt

Das Bereitstellen mehrerer Knoten verteilt die Arbeitslast und verbessert die Fehlertoleranz. Ein SearchNetworkNode stellt eine einzelne JVM‑Instanz dar, die am Such‑Cluster teilnimmt und Indexierungs‑ sowie Abfrage‑Anfragen verarbeitet. Durch das Starten mehrerer Knoten auf aufeinanderfolgenden Ports erstellen Sie ein robustes Netzwerk, in dem jeder Knoten Client‑Aufrufe bedienen und den gemeinsamen Index teilen kann.

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

Wie man Ereignisse abonniert

Das Abonnieren von Ereignissen liefert Ihnen Echtzeit‑Einblicke in den Knoten‑Zustand, den Fortschritt der Indexierung und Fehler. Die Klasse SearchNetworkEvents stellt eine Reihe von Callbacks bereit, die bei bedeutenden Aktionen wie Abschluss der Indexierung, Knoten‑Fehlern oder benutzerdefinierten Benachrichtigungen ausgelöst werden. Das Registrieren von Listenern auf den Master‑ oder Worker‑Knoten ermöglicht Echtzeit‑Überwachung und automatisierte Reaktionen, um das Netzwerk reibungslos zu betreiben.

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

Wie man Dokumente indexiert

Effiziente Indexierung ist das Rückgrat schneller Suchergebnisse. Wenn Sie Verzeichnisse zum Master‑Knoten hinzufügen, scannt die Engine jede Datei, extrahiert durchsuchbaren Inhalt und speichert ihn in der gemeinsamen Index‑Struktur. Dieser Vorgang kann inkrementell ausgeführt werden, wobei nur geänderte Dateien aktualisiert werden, was die I/O‑Belastung reduziert und sicherstellt, dass Abfragen stets die neuesten Dokumentversionen widerspiegeln.

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

Wie man eine Bildsuche durchführt

GroupDocs.Search unterstützt den Bild‑Hash‑Vergleich, sodass Sie visuell ähnliche Assets finden können. Die Klasse SearchImage kapselt eine Bilddatei und berechnet einen perceptual‑Hash, der mit im Index gespeicherten Hashes abgeglichen werden kann. Durch Angabe einer maximalen Hash‑Differenz steuern Sie die Toleranz der visuellen Ähnlichkeit, was eine zuverlässige Entdeckung von Duplikaten oder verwandten Bildern im Repository ermöglicht.

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

Wie man Netzwerk‑Ports konfiguriert

Falls Ihre Umgebung bereits den Port 49120 verwendet, können Sie ihn auf einen beliebigen freien TCP‑Port ändern. Der Parameter basePort bestimmt die Start‑Port‑Nummer für den Cluster, und jeder nachfolgende Knoten erhöht diesen Wert automatisch. Stellen Sie sicher, dass der gewählte Port in Ihrer Firewall geöffnet ist, nicht von anderen Diensten belegt wird und über alle Knoten hinweg einheitlich konfiguriert ist, um eine nahtlose Kommunikation zu gewährleisten.

int customPort = 50000; // Example of a custom port.
Configuration configuration = ConfiguringSearchNetwork.configure(basePath, customPort);

Häufige Probleme & Fehlersuche

SymptomWahrscheinliche UrsacheLösung
Nodes fail to startPortkonfliktWählen Sie einen anderen basePort und aktualisieren Sie die Firewall‑Regeln.
Indexing is slowUnzureichende I/O‑BandbreiteVerwenden Sie SSD‑Speicher und aktivieren Sie die inkrementelle Indexierung.
Event subscription not firingFehlende Registrierung des Ereignis‑HandlersStellen Sie sicher, dass SearchNetworkEvents.subscribe(node) aufgerufen wird, bevor die Indexierung beginnt.
Image search returns no resultsHash‑Differenz zu niedrigErhöhen Sie die zulässige Hash‑Differenz (z. B. von 4 auf 8).

Häufig gestellte Fragen

Q: Wie optimiere ich die Indexierungs‑Performance in einem GroupDocs.Search‑Netzwerk?
A: Verwenden Sie inkrementelle Indexierung, speichern Sie den Index auf schnellen SSDs und stellen Sie ausreichend Heap‑Speicher für die JVM bereit.

Q: Kann ich Knoten hinzufügen oder entfernen, ohne das gesamte Suchnetzwerk neu zu starten?
A: Ja – Knoten können dynamisch bereitgestellt oder entfernt werden. Nach dem Hinzufügen eines Knotens rufen Sie SearchNetworkDeployment.deploy erneut auf, um die Cluster‑Ansicht zu aktualisieren.

Q: Wie verbessert das Abonnieren von Ereignissen das Netzwerk‑Management?
A: Abonnierte Ereignisse liefern Echtzeit‑Warnungen bei Änderungen des Knoten‑Status, Fortschritt der Indexierung und Fehlern, was proaktives Troubleshooting ermöglicht.

Q: Ist es möglich, gleichzeitig nach verschiedenen Dokumentformaten zu suchen?
A: Absolut. GroupDocs.Search unterstützt PDFs, Word, Excel, PowerPoint, Bilder und viele weitere Formate in einer einzigen Abfrage.

Q: Wie sicher sind die Daten in einem GroupDocs.Search‑Netzwerk?
A: Die Sicherheit hängt von Ihrer Infrastruktur ab. Implementieren Sie SSL/TLS für die Knoten‑Kommunikation, beschränken Sie den Netzwerkzugriff und befolgen Sie bewährte Verfahren zum Datenschutz.


Zuletzt aktualisiert: 2026-06-27
Getestet mit: GroupDocs.Search 25.4 für Java
Autor: GroupDocs

Verwandte Tutorials