Crea una rete di ricerca scalabile – Indicizza documenti con GroupDocs.Java

In questo tutorial imparerai come aggiungere documenti all’indice e creare una rete di ricerca scalabile con GroupDocs.Search per Java. Ti guideremo nella configurazione di una rete di ricerca, nel deployment dei nodi e nella gestione degli eventi in modo che la tua applicazione possa elaborare efficientemente grandi collezioni di documenti su più server.

Risposte rapide

  • Cosa significa “add documents to index”? Significa inserire file in un indice ricercabile in modo che possano essere interrogati rapidamente.
  • Quale libreria fornisce questa funzionalità? GroupDocs.Search per Java.
  • Ho bisogno di una licenza? È disponibile una licenza di prova temporanea; è necessaria una licenza commerciale per la produzione.
  • Posso scalare orizzontalmente? Sì—distribuendo più istanze di SearchNetworkNode.
  • Quale versione di Java è richiesta? JDK 8 o superiore.

Cos’è l’aggiunta di documenti all’indice?

Carica i tuoi file sorgente (PDF, DOCX, PPTX, ecc.) nel motore GroupDocs.Search, che estrae il testo, crea tabelle di frequenza dei termini e li memorizza in un file di indice. L’indice risultante consente query di parole chiave in meno di un secondo anche su collezioni di centinaia di pagine.

Perché usare GroupDocs.Search per Java in un ambiente di rete?

Distribuisci i carichi di indicizzazione e ricerca su più nodi, riduci la latenza delle query elaborando vicino alla sorgente dei dati e aggiungi o rimuovi nodi senza tempi di inattività. Questa architettura ti consente di cercare su più server mantenendo le prestazioni costanti.

Prerequisiti

  • Java Development Kit (JDK) 8+ installato.
  • Maven per la gestione delle dipendenze.
  • Familiarità di base con Java e la struttura di progetto Maven.

Librerie richieste, versioni e dipendenze

Per implementare GroupDocs.Search per Java, includi quanto seguito nel tuo progetto Maven:

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

In alternativa, scarica l’ultima versione da GroupDocs.Search for Java releases. Puoi anche trovare le versioni su GroupDocs Search Java releases.

Requisiti di configurazione dell’ambiente

  • JDK 8 o superiore installato sul tuo sistema.
  • Maven installato e configurato se utilizzi un progetto Maven.

Prerequisiti di conoscenza

  • Comprensione di base della programmazione Java.
  • Familiarità con la gestione delle dipendenze in Maven.

Configurazione di GroupDocs.Search per Java

  1. Configurazione Maven: Aggiungi il repository e la dipendenza come mostrato sopra nel tuo file pom.xml.
  2. Download diretto: In alternativa, scarica la libreria da GroupDocs Search Java releases.

Acquisizione della licenza

  • Ottieni una licenza di prova gratuita o temporanea visitando il sito web di GroupDocs.
  • Per accesso completo e supporto, considera l’acquisto di una licenza commerciale.

Inizializzazione di base

Inizializza GroupDocs.Search nella tua applicazione Java:

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

Come aggiungere documenti all’indice in una rete di ricerca?

Carica i tuoi documenti tramite qualsiasi nodo della rete; il framework distribuisce automaticamente il carico di indicizzazione, bilancia il carico e aggiorna l’indice condiviso in tempo reale. Ogni nodo elabora i file assegnati, estrae il testo e scrive le modifiche incrementali nell’indice centrale, garantendo che i contenuti appena aggiunti diventino ricercabili su tutti i nodi quasi istantaneamente.

Funzione 1: Configurare la rete di ricerca

Panoramica

Configurare una rete di ricerca implica impostare i nodi per gestire e distribuire i compiti di ricerca in modo efficiente.

Passo 1: Definire il percorso base e la porta

La classe SearchNetworkNode rappresenta un singolo nodo che partecipa all’indice distribuito.

String basePath = "YOUR_DOCUMENT_DIRECTORY/AdvancedUsage/Scaling/SearchNetworkNodeEvents/";
int basePort = 49140; // Change if necessary due to busy port issues
Passo 2: Configurare la rete

NetworkConfiguration contiene le impostazioni comuni (percorso base, porte, fattore di replica) che ogni nodo legge all’avvio.

import com.groupdocs.search.scaling.*;
import com.groupdocs.search.scaling.configuring.*;

Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);

Funzione 2: Distribuire i nodi della rete di ricerca

Panoramica

Distribuisci i nodi per distribuire e gestire le operazioni di ricerca nella tua rete.

Passo 1: Distribuire i nodi usando la configurazione

Le istanze di SearchNetworkNode vengono avviate con lo stesso file di configurazione, consentendo loro di scoprirsi a vicenda tramite l’intervallo di porte base definito.

import com.groupdocs.search.scaling.*;

SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);

Funzione 3: Sottoscrivere gli eventi del nodo

Panoramica

Sottoscrivere gli eventi del nodo ti consente di monitorare e rispondere a varie azioni all’interno della rete di ricerca.

Passo 1: Definire il metodo di sottoscrizione

NodeEventListener è un’interfaccia che implementi per ricevere callback sul progresso dell’indicizzazione, errori e cambiamenti dello stato di salute del nodo.

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...
}
Passo 2: Utilizzare il metodo di sottoscrizione

Registra il tuo listener su ogni nodo in modo da ottenere feedback in tempo reale durante operazioni batch di grandi dimensioni.

SearchNetworkNode masterNode = nodes[0];
subscribe(masterNode);

Chiusura dei nodi

Chiudi sempre i nodi in modo corretto per svuotare le scritture in sospeso e rilasciare i socket di rete.

for (SearchNetworkNode node : nodes) {
    node.close();
}

Applicazioni pratiche

  1. Soluzioni di ricerca aziendale – Implementa una rete di ricerca per gestire ricerche di documenti su larga scala su più server.
  2. Piattaforme e‑commerce – Migliora le capacità di ricerca dei prodotti distribuendo i compiti di indicizzazione su più nodi.
  3. Sistemi di gestione dei contenuti (CMS) – Migliora le prestazioni del recupero e dell’aggiornamento dei contenuti negli ambienti CMS.

Considerazioni sulle prestazioni

  • Ottimizza il deployment dei nodi in base alle risorse del tuo sistema.
  • Monitora regolarmente l’utilizzo della memoria per prevenire perdite, specialmente quando gestisci grandi set di dati.
  • Utilizza le impostazioni di configurazione per affinare le operazioni di indicizzazione e ricerca per una maggiore efficienza.

Problemi comuni e soluzioni

ProblemaCausa tipicaSoluzione
Conflitti di portabasePort già in usoCambia basePort con un numero disponibile
Nodo non raggiungibileRegole firewall o di reteApri le porte necessarie e verifica la connettività
Indice non aggiornatoPercorso documento erratoVerifica che basePath punti alla directory corretta
Elevato utilizzo di memoriaIndicizzazione batch di grandi dimensioniIndicizza i documenti in batch più piccoli o aumenta la dimensione dell’heap

Domande frequenti

Q: Come gestisco i conflitti di porta durante il deployment dei nodi?
A: Cambia la variabile basePort nel tuo codice di configurazione con una porta disponibile.

Q: GroupDocs.Search può essere usato per l’indicizzazione in tempo reale?
A: Sì, supporta l’indicizzazione in tempo reale con le configurazioni appropriate.

Q: Quali sono alcuni problemi comuni durante il deployment dei nodi?
A: La connettività di rete e le impostazioni di percorso errate sono cause frequenti. Assicurati che tutti i percorsi e le porte siano configurati correttamente.

Q: È possibile aggiungere documenti all’indice dopo che la rete è in esecuzione?
A: Assolutamente. Puoi chiamare index.add(...) su qualsiasi nodo, e la rete distribuirà automaticamente il nuovo carico di lavoro.

Q: Ho bisogno di una licenza per i test di sviluppo?
A: Una licenza di prova temporanea è sufficiente per i test; è necessaria una licenza commerciale per l’uso in produzione.

Risorse

Seguendo questa guida, potrai aggiungere efficacemente documenti all’indice e gestire una rete di ricerca robusta e scalabile usando GroupDocs.Search per Java. Buon coding!


Ultimo aggiornamento: 2026-05-22
Testato con: GroupDocs.Search 25.4 per Java
Autore: GroupDocs

Tutorial correlati