Come configurare la ricerca con GroupDocs.Search in Java

Nel mondo digitale di oggi, in rapida evoluzione, come configurare la ricerca in modo efficiente può fare la differenza tra il successo e il fallimento di un progetto. Che tu stia gestendo migliaia di contratti, articoli di ricerca o report interni, una rete di ricerca ben progettata ti consente di individuare il documento giusto in pochi secondi. Questo tutorial ti guida nella configurazione di una rete di ricerca, nel deployment dei nodi e nell’abilitazione degli aggiornamenti di ricerca in tempo reale con GroupDocs.Search per Java.

Risposte rapide

  • Qual è lo scopo principale di una rete di ricerca? Per distribuire l’indicizzazione e l’elaborazione delle query su più nodi per scalabilità e velocità.
  • Quale versione della libreria è richiesta? GroupDocs.Search per Java v25.4 o successiva.
  • È necessaria una licenza? Una prova gratuita è sufficiente per la valutazione; è richiesta una licenza commerciale per la produzione.
  • Come vengono gestiti gli aggiornamenti in tempo reale? Iscrivendosi agli eventi dei nodi che si attivano sulle modifiche dell’indicizzazione.
  • Posso aggiungere nuove cartelle di documenti al volo? Sì—usa il metodo addDirectories dell’indicizzatore.

Cos’è “come configurare la ricerca” in un contesto GroupDocs?

Configurare la ricerca significa impostare una rete di ricerca che conosce la posizione dei tuoi documenti, come i nodi comunicano e come l’indicizzazione è coordinata. Una volta configurata la rete, è possibile aggiungere o rimuovere nodi senza tempi di inattività, garantendo un accesso continuo a risultati di ricerca aggiornati.

Perché utilizzare GroupDocs.Search per Java?

  • Scalabilità: Distribuire il carico di lavoro su più macchine.
  • Aggiornamenti in tempo reale: Riflettere istantaneamente i file appena indicizzati su tutta la rete.
  • Facilità di integrazione: Configurazione Maven semplice e API Java chiare.
  • Pronto per l’impresa: Gestisce grandi corpora e scenari di query complessi.

Prerequisiti

  • Java Development Kit (JDK) 8+ installato.
  • Maven per la gestione delle dipendenze.
  • Familiarità di base con Java, Maven e i concetti di ricerca.

Configurazione di GroupDocs.Search per Java

Dipendenza Maven

Aggiungi il repository e la dipendenza al tuo 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: Puoi anche ottenere la libreria da GroupDocs.Search for Java releases.

Acquisizione della licenza

  • Prova gratuita: Ottieni una licenza di prova per esplorare tutte le funzionalità.
  • Licenza temporanea: Richiedi per periodi di valutazione estesi.
  • Licenza commerciale: Necessaria per le implementazioni in produzione.

Inizializzazione di base

import com.groupdocs.search.Configuration;
// Initialize configuration with your document path and port
String basePath = "YOUR_DOCUMENT_DIRECTORY/AdvancedUsage/Scaling/GettingDocumentsInNetwork/";
int basePort = 49112;

Configuration config = new Configuration(basePath, basePort);

Come configurare la rete di ricerca in Java

Passo 1: Importare i pacchetti necessari

import com.groupdocs.search.scaling.ConfiguringSearchNetwork;
import com.groupdocs.search.scaling.Configuration;

Passo 2: Configurare la rete

String basePath = "YOUR_DOCUMENT_DIRECTORY/AdvancedUsage/Scaling/GettingDocumentsInNetwork/";
int basePort = 49112;

Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
  • Parametri: basePath indica la cartella dei tuoi documenti; basePort è la porta TCP usata per la comunicazione tra nodi.

Distribuzione dei nodi della rete di ricerca

Passo 1: Importare il pacchetto di distribuzione

import com.groupdocs.search.scaling.SearchNetworkDeployment;
import com.groupdocs.search.scaling.SearchNetworkNode;

Passo 2: Distribuire i nodi

String[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);
SearchNetworkNode masterNode = nodes[0]; // Designate the first node as the master node
  • Nodo master: Coordina le ricerche e l’indicizzazione su tutti i nodi. Puoi configurare le impostazioni del nodo master come l’allocazione degli shard e i controlli di salute.

Iscrizione agli eventi dei nodi per aggiornamenti di ricerca in tempo reale

Passo 1: Importare il pacchetto eventi

import com.groupdocs.search.scaling.SearchNetworkNodeEvents;

Passo 2: Iscriversi agli eventi del nodo master

SearchNetworkNodeEvents.subscribe(masterNode);
  • Gestione degli eventi: Abilita gli aggiornamenti di ricerca in tempo reale ogni volta che i documenti vengono aggiunti, aggiornati o rimossi.

Aggiunta di directory per l’indicizzazione

Passo 1: Importare il pacchetto indicizzatore

import com.groupdocs.search.examples.Utils;
import com.groupdocs.search.scaling.Indexer;

Passo 2: Aggiungere directory di documenti

Indexer indexer = masterNode.getIndexer();
indexer.addDirectories("YOUR_DOCUMENT_DIRECTORY/DocumentsPath");
  • Indicizzazione dinamica: Usa il metodo addDirectories per aggiungere directory all’indice al volo senza riavviare la rete.

Recupero dei documenti indicizzati

Passo 1: Importare il pacchetto Searcher

import com.groupdocs.search.scaling.Searcher;
import com.groupdocs.search.scaling.NetworkDocumentInfo;

Passo 2: Recuperare le informazioni del documento

Searcher searcher = masterNode.getSearcher();
int[] shardIndices = masterNode.getShardIndices();

for (int i = 0; i < shardIndices.length; i++) {
    int shardIndex = shardIndices[i];
    NetworkDocumentInfo[] infos = searcher.getIndexedDocuments(shardIndex);

    for (NetworkDocumentInfo info : infos) {
        int nodeIndex = masterNode.getNodeIndex(info.getShardIndex());
        String filePath = info.getDocumentInfo().getFilePath();

        // Retrieve and process document attributes
        String[] attributes = indexer.getAttributes(filePath);
        
        NetworkDocumentInfo[] items = searcher.getIndexedDocumentItems(info);
        for (NetworkDocumentInfo item : items) {
            // Process each indexed item
        }
    }
}
  • Gestione degli shard: Gestisce in modo efficiente grandi set di dati distribuendo i documenti tra gli shard. Per ottimizzare la dimensione degli shard, monitora le statistiche degli shard e regola la configurazione shardSize nelle versioni future.

Perché questo è importante per il tuo progetto

Una rete di ricerca configurata correttamente elimina i colli di bottiglia, riduce la latenza e garantisce che gli utenti vedano sempre la versione più recente di un documento. Gli aggiornamenti in tempo reale e la possibilità di aggiungere directory all’indice senza tempi di inattività sono particolarmente preziosi per studi legali, istituzioni di ricerca e qualsiasi organizzazione che gestisce collezioni di documenti in continua evoluzione.

Applicazioni pratiche

  1. Gestione documentale aziendale: Centralizzare la ricerca su milioni di file.
  2. Studi legali: Individuare rapidamente fascicoli, contratti e prove.
  3. Ricerca accademica: Indicizzare riviste e articoli per un recupero istantaneo.

Considerazioni sulle prestazioni

  • Ottimizzare l’indicizzazione: Pianificare aggiornamenti regolari dell’indice e rimuovere dati obsoleti.
  • Gestione della memoria: Monitorare l’heap JVM, soprattutto quando si gestiscono shard di grandi dimensioni.
  • Pianificazione della scalabilità: Aggiungere nodi man mano che il corpus cresce; la rete bilancia automaticamente il carico.
  • Ottimizzare la dimensione degli shard: Shard più piccoli migliorano la latenza delle query, mentre shard più grandi riducono l’overhead. Regola in base all’hardware e ai pattern di query.

Problemi comuni e soluzioni

ProblemaCausaSoluzione
I nodi non possono connettersiConflitto di porta o firewallAssicurati che basePort sia aperto e non sia utilizzato da altri servizi
L’indice non si aggiornaSottoscrizione agli eventi mancanteChiama SearchNetworkNodeEvents.subscribe(masterNode) dopo il deployment
Errori di out‑of‑memoryTroppi shard di grandi dimensioni caricatiRiduci la dimensione degli shard o aumenta l’heap JVM (-Xmx flag)

Domande frequenti

Q: Posso aggiungere nuove directory dopo che la rete è in esecuzione?
A: Sì—usa il metodo indexer.addDirectories(); gli eventi sottoscritti propagheranno gli aggiornamenti in tempo reale.

Q: Come monitorare lo stato di salute dei nodi?
A: Ogni SearchNetworkNode fornisce API di stato; integrale con lo strumento di monitoraggio che preferisci.

Q: È possibile eseguire il nodo master su una macchina separata?
A: Assolutamente. Basta assicurarsi che tutti i nodi condividano lo stesso basePort e possano raggiungersi sulla rete.

Q: Quali formati di file sono supportati?
A: GroupDocs.Search supporta PDF, Word, Excel, PowerPoint, testo semplice e molti altri nativamente.

Q: È necessario riavviare la rete dopo aver aggiunto un nuovo nodo?
A: No—i nodi possono essere aggiunti o rimossi dinamicamente; il nodo master riequilibrerà automaticamente gli shard.

Conclusione

Ora che conosci come configurare la ricerca usando GroupDocs.Search per Java, puoi costruire soluzioni di ricerca documentale rapide, scalabili e affidabili che tengono il passo con la crescita della tua organizzazione. Applica questi modelli per creare esperienze di ricerca distribuite e in tempo reale per qualsiasi settore.


Last Updated: 2026-05-02
Tested With: GroupDocs.Search for Java 25.4
Author: GroupDocs