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
- Configurazione Maven: Aggiungi il repository e la dipendenza come mostrato sopra nel tuo file
pom.xml. - 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
- Soluzioni di ricerca aziendale – Implementa una rete di ricerca per gestire ricerche di documenti su larga scala su più server.
- Piattaforme e‑commerce – Migliora le capacità di ricerca dei prodotti distribuendo i compiti di indicizzazione su più nodi.
- 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
| Problema | Causa tipica | Soluzione |
|---|---|---|
| Conflitti di porta | basePort già in uso | Cambia basePort con un numero disponibile |
| Nodo non raggiungibile | Regole firewall o di rete | Apri le porte necessarie e verifica la connettività |
| Indice non aggiornato | Percorso documento errato | Verifica che basePath punti alla directory corretta |
| Elevato utilizzo di memoria | Indicizzazione batch di grandi dimensioni | Indicizza 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
- Documentazione: GroupDocs Search Java Docs
- Riferimento API: GroupDocs API Reference
- Download: Latest Release
- GitHub: GroupDocs.Search GitHub Repository
- Supporto gratuito: GroupDocs Forum
- Licenza temporanea: Obtain a Temporary License
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