Configura la ricerca distribuita con GroupDocs.Search Java Network

Nel mondo odierno guidato dai dati, configure distributed search è essenziale per gestire collezioni di documenti massivi mantenendo bassi i tempi di risposta. Questo tutorial ti guida nella configurazione di una rete robusta di GroupDocs.Search per Java, mostrando come deploy search across multiple nodes, add documents to index, e configure TCP settings per una comunicazione affidabile. Alla fine, avrai una soluzione di ricerca scalabile pronta per la produzione e una chiara comprensione del motivo per cui questa architettura supera una configurazione a nodo singolo.

Risposte rapide

  • What is configure distributed search? È il processo di collegare diversi nodi di ricerca indipendenti in modo che indicizzino e rispondano alle query collettivamente, offrendo maggiore throughput e tolleranza ai guasti.
  • How many nodes are recommended? Tipicamente 3‑5 nodi offrono un buon equilibrio tra prestazioni e tolleranza ai guasti per la maggior parte dei carichi di lavoro aziendali.
  • Do I need a license? Sì – è necessaria una licenza temporanea o completa per l’uso in produzione di GroupDocs.Search.
  • Which ports should I use? Scegli porte libere sui tuoi server; l’esempio utilizza 49136‑49139, ma qualsiasi intervallo aperto funziona.
  • Can I add new documents after deployment? Assolutamente – puoi add documents to index in qualsiasi momento senza riavviare la rete.

Configurare un’architettura di ricerca distribuita significa collegare diversi nodi di ricerca indipendenti in modo che condividano il lavoro di indicizzazione e rispondano alle query collettivamente. Questo riduce il carico su qualsiasi singola macchina, migliora sia il throughput che l’affidabilità, e fornisce ridondanza integrata per la tolleranza ai guasti.

Perché usare GroupDocs.Search per Java?

GroupDocs.Search per Java offre high‑performance indexing (fino a 1 GB/s su hardware moderno) e scalable architecture che supporta cluster di oltre 10 nodi. Comprende nativamente 50+ document formats—inclusi PDF, DOCX, XLSX, PPTX e file email—così puoi indicizzare praticamente qualsiasi contenuto aziendale senza convertitori aggiuntivi. La classe integrata TcpSettings ti consente di regolare finemente latenza, throughput e intervalli di keep‑alive, garantendo una comunicazione inter‑nodo affidabile anche attraverso i confini dei data‑center. TcpSettings configura i parametri di comunicazione TCP a basso livello tra i nodi.

Prerequisiti

Librerie e dipendenze richieste

Avrai bisogno di GroupDocs.Search for Java versione 25.4 o successiva. Assicurati che l’ambiente di sviluppo abbia Java installato.

Requisiti di configurazione dell’ambiente

  • Un Java Development Kit (JDK) 11 o più recente.
  • Un IDE come IntelliJ IDEA o Eclipse per una gestione comoda del progetto.

Prerequisiti di conoscenza

Competenze di base nella programmazione Java e una comprensione generale della configurazione di rete ti aiuteranno a seguire i passaggi senza problemi.

Configurazione di GroupDocs.Search per Java

Per iniziare, aggiungi GroupDocs.Search per Java al tuo progetto. Puoi farlo tramite Maven o scaricando direttamente la libreria.

Impostazione Maven
Aggiungi il seguente repository e configurazione della dipendenza nel tuo file 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>

Download diretto
In alternativa, scarica l’ultima versione da GroupDocs.Search for Java releases.

Acquisizione della licenza

Per utilizzare appieno GroupDocs.Search, puoi ottenere una licenza temporanea o acquistarne una. Visita la pagina di licenza di GroupDocs per ulteriori informazioni su come ottenere una prova gratuita o una licenza completa. Puoi anche utilizzare la pagina di licenza di GroupDocs per lo stesso scopo.

Inizializzazione e configurazione di base

Inizializziamo GroupDocs.Search nella tua applicazione Java:

import com.groupdocs.search.*;

public class SearchSetup {
    public static void main(String[] args) {
        // Create an index in the specified folder
        Index index = new Index("YOUR_INDEX_DIRECTORY");

        // Add documents to the index
        index.add("YOUR_DOCUMENT_DIRECTORY");
    }
}

Guida all’implementazione

In questa sezione, ti guideremo nella configurazione e distribuzione di una rete di ricerca usando GroupDocs.Search per Java.

Come configurare la ricerca distribuita con GroupDocs.Search?

Carica la configurazione della rete, definisci i percorsi base e imposta i parametri TCP in poche righe di codice. Questo modello di risposta diretta ti mostra i passaggi essenziali prima di qualsiasi spiegazione dettagliata.

Per prima cosa, crea un oggetto SearchNetworkConfig, specifica una directory base condivisa e assegna una porta TCP distinta per ogni nodo. SearchNetworkConfig definisce le impostazioni per il cluster di ricerca distribuita, come la directory base e le porte dei nodi. Quindi, istanzia TcpSettings—la classe che controlla il timeout del socket, la dimensione del buffer e il comportamento keep‑alive. Infine, chiama NetworkManager.deploy(config) per avviare il cluster. NetworkManager gestisce il deployment e la gestione dei nodi di ricerca all’interno del cluster.

Configurazione della rete

La classe TcpSettings è il centro di configurazione per tutta la comunicazione a livello TCP tra i nodi. Ti consente di impostare il timeout di connessione, le dimensioni dei buffer di lettura/scrittura e se utilizzare l’algoritmo di Nagle.

Configuration configuration = ConfiguringSearchNetwork.configure("YOUR_DOCUMENT_DIRECTORY", 49136);

Distribuzione dei nodi

Distribuisci ogni nodo fornendo il suo identificatore unico e la configurazione precedentemente definita. La routine di deployment registra automaticamente il nodo nel cluster, apre il socket di ascolto e avvia i thread di indicizzazione in background.

public static SearchNetworkNode[] deploy(String basePath, int basePort, Configuration configuration) {
    // Define timeouts for sending and receiving data over the network.
    int sendTimeout = 3000;
    int receiveTimeout = 3000;

    // Create and start three nodes that can run on separate servers or together.
    SearchNetworkNode node1 = new SearchNetworkNode(
        1,
        basePath + "Node1",
        new TcpSettings(basePort + 1, sendTimeout, receiveTimeout)
    );
    node1.start();

    SearchNetworkNode node2 = new SearchNetworkNode(
        2,
        basePath + "Node2",
        new TcpSettings(basePort + 2, sendTimeout, receiveTimeout)
    );
    node2.start();

    SearchNetworkNode node3 = new SearchNetworkNode(
        3,
        basePath + "Node3",
        new TcpSettings(basePort + 3, sendTimeout, receiveTimeout)
    );
    node3.start();

    // Create and configure the main configuration node.
    SearchNetworkNode node0 = new SearchNetworkNode(
        0,
        basePath + "Node0",
        new TcpSettings(basePort, sendTimeout, receiveTimeout),
        new ConsoleLogger(),
        configuration
    );

    // Add an event handler to notify when the configuration is complete.
    node0.getEvents().ConfigurationCompleted.add(new EventHandler() {
        @Override
        public void invoke(Object s, EventArgs e) {
            // Event handling logic here (e.g., logging)
        }
    });

    // Configure all nodes in the network using the main configuration node.
    node0.configureAllNodes();

    // Start the search network by launching all configured nodes.
    node0.start();

    // Return an array of all deployed nodes.
    return new SearchNetworkNode[] {node0, node1, node2, node3};
}

Problemi comuni e soluzioni

  • Directory Access Errors – Assicurati che la directory base di ogni nodo esista e che il processo Java abbia permessi di lettura/scrittura.
  • Port Conflicts – Verifica che le porte scelte (ad es., 49136‑49139) non siano utilizzate da altri servizi; puoi eseguire netstat -an per controllare.
  • Timeouts on Slow Networks – Aumenta TcpSettings.setConnectionTimeout() se riscontri frequenti disconnessioni in ambienti ad alta latenza.
  • Index Corruption – Esegui regolarmente il backup della cartella dell’indice e abilita NetworkManager.enableAutoRecovery() per ricostruire automaticamente le shard corrotte.

Applicazioni pratiche

Distribuire una rete di ricerca distribuita può essere vantaggioso in vari scenari:

  1. Large‑Scale Enterprise Systems – Indicizza milioni di contratti, politiche e report mantenendo risposte alle query inferiori al secondo.
  2. Content Management Platforms – Servi migliaia di utenti simultanei che cercano tra asset multimediali senza colli di bottiglia.
  3. E‑commerce Websites – Accelerare le ricerche di prodotti e la navigazione a faccette su cataloghi contenenti milioni di SKU.

Considerazioni sulle prestazioni

Per mantenere il tuo ambiente configure distributed search efficiente:

  • Index Size Management – GroupDocs.Search può gestire indici superiori a 100 GB; tuttavia, monitora I/O disco e considera lo sharding di grandi collezioni su più nodi.
  • Resource Tuning – Applica flag di ottimizzazione della memoria Java (-Xmx8g -Xms4g) in base al carico di lavoro, e regola TcpSettings.setReadBufferSize() per reti ad alto throughput.
  • Health Monitoring – Usa il NetworkHealthMonitor integrato per monitorare CPU, memoria e latenza di rete per nodo, e imposta avvisi per le soglie che definisci.

Conclusione

Seguendo questo tutorial, hai imparato a configure distributed search e a distribuire una rete Java di GroupDocs.Search scalabile. Questa soluzione può migliorare drasticamente la velocità e l’affidabilità delle funzionalità di ricerca della tua applicazione, soprattutto quando si gestiscono collezioni di documenti grandi e eterogenei.

Prossimi passi

Esplora funzionalità avanzate come analizzatori personalizzati, gestione dei sinonimi e indicizzazione in tempo reale per affinare ulteriormente la tua esperienza di ricerca. Puoi anche integrare la rete con uno strato API RESTful per esporre la funzionalità di ricerca a client esterni.

Invito all’azione

Inizia a implementare questa soluzione robusta nei tuoi progetti oggi stesso e osserva in prima persona il miglioramento delle prestazioni!

Domande frequenti

Q: What is GroupDocs.Search for Java?
A: GroupDocs.Search for Java è una libreria ad alte prestazioni che indicizza e ricerca testo su più di 50 formati di documento, fornendo una ricerca full‑text veloce e scalabile per le applicazioni Java.

Q: How do I obtain a temporary license for GroupDocs.Search?
A: Visita la pagina di licenza di GroupDocs per richiedere una prova gratuita o acquistare una licenza completa per l’uso in produzione.

Q: Can I add new documents after the network is deployed?
A: Sì, puoi add documents to index in qualsiasi momento usando il metodo IndexManager.addDocument(); le modifiche si propagano automaticamente nel cluster. IndexManager.addDocument() aggiunge un nuovo documento all’indice e lo propaga nella rete.

Q: What are common pitfalls when configuring nodes?
A: I problemi tipici includono percorsi base non corrispondenti, conflitti di porte e permessi insufficienti del file system. Ricontrolla la configurazione di ogni nodo e assicurati che tutte le directory siano accessibili.

Q: Does the network support real‑time indexing?
A: Assolutamente. GroupDocs.Search offre API di indicizzazione in tempo reale che rendono immediatamente i documenti appena aggiunti ricercabili su tutti i nodi senza tempi di inattività.

Ultimo aggiornamento: 2026-06-27
Testato con: GroupDocs.Search 25.4 for Java
Autore: GroupDocs

Tutorial correlati