Skalierbares Suchnetzwerk aufbauen – Dokumente mit GroupDocs.Java indizieren
In diesem Tutorial lernen Sie wie man Dokumente zum Index hinzufügt und ein skalierbares Suchnetzwerk aufbaut mit GroupDocs.Search für Java. Wir führen Sie durch die Konfiguration eines Suchnetzwerks, das Bereitstellen von Knoten und das Verarbeiten von Ereignissen, sodass Ihre Anwendung große Dokumentensammlungen über mehrere Server hinweg effizient verarbeiten kann.
Schnelle Antworten
- Was bedeutet „add documents to index“? Es bedeutet, Dateien in einen durchsuchbaren Index einzufügen, sodass sie schnell abgefragt werden können.
- Welche Bibliothek stellt diese Fähigkeit bereit? GroupDocs.Search für Java.
- Benötige ich eine Lizenz? Eine temporäre Testlizenz ist verfügbar; für die Produktion ist eine kommerzielle Lizenz erforderlich.
- Kann ich horizontal skalieren? Ja – durch das Bereitstellen mehrerer SearchNetworkNode-Instanzen.
- Welche Java-Version wird benötigt? JDK 8 oder höher.
Was bedeutet das Hinzufügen von Dokumenten zum Index?
Laden Sie Ihre Quelldateien (PDF, DOCX, PPTX usw.) in die GroupDocs.Search‑Engine, die den Text extrahiert, Term‑Frequency‑Tabellen erstellt und sie in einer Indexdatei speichert. Der resultierende Index ermöglicht Unter‑Sekunden‑Keyword‑Abfragen selbst bei Sammlungen mit mehreren hundert Seiten.
Warum GroupDocs.Search für Java in einer Netzwerkumgebung verwenden?
Verteilen Sie Indexierungs- und Suchlasten über mehrere Knoten, reduzieren Sie die Abfrage‑Latenz, indem Sie nahe der Datenquelle verarbeiten, und fügen Sie Knoten hinzu oder entfernen Sie sie ohne Ausfallzeit. Diese Architektur ermöglicht es Ihnen, über mehrere Server hinweg zu suchen, während die Leistung konsistent bleibt.
Voraussetzungen
- Java Development Kit (JDK) 8+ installiert.
- Maven für das Abhängigkeitsmanagement.
- Grundlegende Kenntnisse in Java und der Maven‑Projektstruktur.
Erforderliche Bibliotheken, Versionen und Abhängigkeiten
Um GroupDocs.Search für Java zu implementieren, fügen Sie das Folgende in Ihr Maven‑Projekt ein:
<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. Sie finden die Releases auch unter GroupDocs Search Java releases.
Anforderungen an die Umgebungseinrichtung
- JDK 8 oder höher auf Ihrem System installiert.
- Maven installiert und konfiguriert, falls Sie ein Maven‑Projekt verwenden.
Wissensvoraussetzungen
- Grundlegendes Verständnis der Java‑Programmierung.
- Vertrautheit mit dem Verwalten von Abhängigkeiten in Maven.
Einrichtung von GroupDocs.Search für Java
- Maven‑Einrichtung: Fügen Sie das Repository und die Abhängigkeit wie oben in Ihrer
pom.xml‑Datei hinzu. - Direkter Download: Alternativ können Sie die Bibliothek von GroupDocs Search Java releases herunterladen.
Lizenzbeschaffung
- Erhalten Sie eine kostenlose Test- oder temporäre Lizenz, indem Sie die GroupDocs-Website besuchen.
- Für vollen Zugriff und Support sollten Sie den Kauf einer kommerziellen Lizenz in Betracht ziehen.
Grundlegende Initialisierung
Initialisieren Sie GroupDocs.Search in Ihrer Java‑Anwendung:
import com.groupdocs.search.*;
public class SearchSetup {
public static void main(String[] args) {
// Initialize an index
Index index = new Index("path/to/index/directory");
// Add documents to the index
index.add("path/to/documents");
System.out.println("GroupDocs.Search setup complete.");
}
}
Wie fügt man Dokumente zum Index in einem Suchnetzwerk hinzu?
Laden Sie Ihre Dokumente über einen beliebigen Knoten im Netzwerk; das Framework verteilt die Indexierungsarbeit automatisch, balanciert die Last und aktualisiert den gemeinsamen Index in Echtzeit. Jeder Knoten verarbeitet seine zugewiesenen Dateien, extrahiert Text und schreibt inkrementelle Änderungen in den zentralen Index, sodass neu hinzugefügter Inhalt fast sofort über alle Knoten hinweg durchsuchbar wird.
Funktion 1: Suchnetzwerk konfigurieren
Überblick
Die Konfiguration eines Suchnetzwerks beinhaltet das Einrichten von Knoten, um Suchaufgaben effizient zu verwalten und zu verteilen.
Schritt 1: Basis‑Pfad und Port festlegen
Die Klasse SearchNetworkNode repräsentiert einen einzelnen Knoten, der am verteilten Index teilnimmt.
String basePath = "YOUR_DOCUMENT_DIRECTORY/AdvancedUsage/Scaling/SearchNetworkNodeEvents/";
int basePort = 49140; // Change if necessary due to busy port issues
Schritt 2: Netzwerk konfigurieren
NetworkConfiguration enthält die gemeinsamen Einstellungen (Basis‑Pfad, Ports, Replikationsfaktor), die jeder Knoten beim Start liest.
import com.groupdocs.search.scaling.*;
import com.groupdocs.search.scaling.configuring.*;
Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
Funktion 2: Suchnetzwerk‑Knoten bereitstellen
Überblick
Stellen Sie Knoten bereit, um Suchvorgänge über Ihr Netzwerk zu verteilen und zu verarbeiten.
Schritt 1: Knoten mit Konfiguration bereitstellen
SearchNetworkNode‑Instanzen werden mit derselben Konfigurationsdatei gestartet, wodurch sie sich über den definierten Basis‑Port‑Bereich gegenseitig entdecken können.
import com.groupdocs.search.scaling.*;
SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);
Funktion 3: Auf Knoten‑Ereignisse abonnieren
Überblick
Das Abonnieren von Knoten‑Ereignissen ermöglicht es Ihnen, verschiedene Aktionen im Suchnetzwerk zu überwachen und darauf zu reagieren.
Schritt 1: Abonnement‑Methode definieren
NodeEventListener ist ein Interface, das Sie implementieren, um Rückrufe für Indexierungsfortschritt, Fehler und Änderungen des Knotenzustands zu erhalten.
import com.groupdocs.search.events.*;
import com.groupdocs.search.scaling.events.*;
public static void subscribe(SearchNetworkNode node) {
// Subscribe to IndexingCompleted event
node.getEvents().IndexingCompleted.add(new EventHandler() {
@Override
public void invoke(Object s, EventArgs e) {
System.out.println("Indexing completed.");
}
});
// Additional events can be subscribed similarly...
}
Schritt 2: Abonnement‑Methode verwenden
Registrieren Sie Ihren Listener bei jedem Knoten, damit Sie während großer Batch‑Operationen Echtzeit‑Feedback erhalten.
SearchNetworkNode masterNode = nodes[0];
subscribe(masterNode);
Knoten schließen
Schalten Sie Knoten immer sauber herunter, um ausstehende Schreibvorgänge zu flushen und Netzwerk‑Sockets freizugeben.
for (SearchNetworkNode node : nodes) {
node.close();
}
Praktische Anwendungen
- Enterprise‑Suchlösungen – Implementieren Sie ein Suchnetzwerk, um groß angelegte Dokumentensuchen über mehrere Server hinweg zu bewältigen.
- E‑Commerce‑Plattformen – Verbessern Sie die Produktsuche, indem Sie Indexierungsaufgaben über mehrere Knoten verteilen.
- Content‑Management‑Systeme (CMS) – Verbessern Sie die Leistung von Inhaltsabruf und -updates in CMS‑Umgebungen.
Leistungsüberlegungen
- Optimieren Sie die Knotenbereitstellung basierend auf den Ressourcen Ihres Systems.
- Überwachen Sie regelmäßig die Speicher‑Nutzung, um Lecks zu verhindern, insbesondere beim Umgang mit großen Datensätzen.
- Nutzen Sie Konfigurationseinstellungen, um Indexierungs‑ und Suchvorgänge für bessere Effizienz fein abzustimmen.
Häufige Probleme und Lösungen
| Problem | Typische Ursache | Lösung |
|---|---|---|
| Portkonflikte | basePort bereits in Verwendung | Ändern Sie basePort zu einer verfügbaren Nummer |
| Knoten nicht erreichbar | Firewall‑ oder Netzwerkregeln | Öffnen Sie die erforderlichen Ports und prüfen Sie die Konnektivität |
| Index wird nicht aktualisiert | Falscher Dokumentpfad | Stellen Sie sicher, dass basePath auf das richtige Verzeichnis zeigt |
| Hohe Speichernutzung | Große Batch‑Indexierung | Indexieren Sie Dokumente in kleineren Batches oder erhöhen Sie die Heap‑Größe |
Häufig gestellte Fragen
Q: Wie gehe ich mit Portkonflikten beim Bereitstellen von Knoten um?
A: Ändern Sie die Variable basePort in Ihrem Konfigurationscode zu einem verfügbaren Port.
Q: Kann GroupDocs.Search für Echtzeit‑Indexierung verwendet werden?
A: Ja, es unterstützt Echtzeit‑Indexierung mit entsprechenden Konfigurationen.
Q: Was sind häufige Probleme bei der Knoten‑Bereitstellung?
A: Netzwerk‑Konnektivität und falsche Pfadeinstellungen sind häufige Ursachen. Stellen Sie sicher, dass alle Pfade und Ports korrekt konfiguriert sind.
Q: Ist es möglich, Dokumente zum Index hinzuzufügen, nachdem das Netzwerk läuft?
A: Absolut. Sie können index.add(...) auf jedem Knoten aufrufen, und das Netzwerk verteilt die neue Arbeitslast automatisch.
Q: Benötige ich eine Lizenz für Entwicklungstests?
A: Eine temporäre Testlizenz reicht für Tests aus; für den Produktionseinsatz ist eine kommerzielle Lizenz erforderlich.
Ressourcen
- Dokumentation: GroupDocs Search Java Docs
- API‑Referenz: GroupDocs API Reference
- Download: Latest Release
- GitHub: GroupDocs.Search GitHub Repository
- Kostenloser Support: GroupDocs Forum
- Temporäre Lizenz: Obtain a Temporary License
Durch Befolgen dieser Anleitung können Sie effektiv Dokumente zum Index hinzufügen und ein robustes, skalierbares Suchnetzwerk aufbauen mit GroupDocs.Search für Java verwalten. Viel Spaß beim Programmieren!
Zuletzt aktualisiert: 2026-05-22
Getestet mit: GroupDocs.Search 25.4 for Java
Autor: GroupDocs