Evidenzia i risultati di ricerca Java con GroupDocs.Search

Se sei stanco di setacciare manualmente una quantità infinita di documenti, highlight search results java offre un modo rapido e affidabile per trovare esattamente ciò di cui hai bisogno. In questo tutorial vedremo come configurare una rete di ricerca distribuita, indicizzare i file, eseguire le query e, infine, evidenziare le corrispondenze direttamente nei documenti. Alla fine avrai una soluzione pronta per la produzione, scalabile su più nodi e capace di far risaltare immediatamente i termini rilevanti.

Risposte rapide

  • Che cosa significa “highlight search results java”? Si riferisce al contrassegno programmatico delle parole chiave trovate all’interno dei documenti quando si utilizzano librerie Java come GroupDocs.Search.
  • Posso evidenziare più termini nello stesso documento? Sì – usa HighlightOptions per definire quanti termini prima/dopo ogni corrispondenza devono essere mostrati.
  • È necessaria una licenza per eseguire questo esempio? Una prova gratuita o una licenza temporanea è sufficiente per i test; è richiesta una licenza completa per la produzione.
  • Quale versione di Java è necessaria? Java 8 o successiva.
  • Questo approccio è adatto a collezioni di documenti di grandi dimensioni? Assolutamente sì – la rete di ricerca distribuisce l’indicizzazione e il carico delle query su più nodi.

Cos’è Highlight Search Results Java?

Highlight search results java è il processo di prendere una query di ricerca, individuare i frammenti corrispondenti nei tuoi documenti e enfatizzarli visivamente (ad esempio, circondandoli con marcatori o restituendoli come snippet evidenziati). Questo consente agli utenti finali di vedere il contesto di ogni corrispondenza senza aprire l’intero file.

Perché usare GroupDocs.Search per l’evidenziazione?

GroupDocs.Search fornisce un motore pronto all’uso, ad alte prestazioni, che supporta decine di formati di file, indicizzazione distribuita e evidenziatori di frammenti integrati. Elimina la necessità di scrivere parser personalizzati o gestire infrastrutture di ricerca a basso livello, permettendoti di concentrarti sulla creazione di un’esperienza utente fluida.

Prerequisiti

  • Java Development Kit (JDK) 8+ – assicurati che java -version restituisca 1.8 o superiore.
  • Maven – per la gestione delle dipendenze.
  • GroupDocs.Search for Java 25.4 – la versione utilizzata in questa guida.
  • Un IDE come IntelliJ IDEA o Eclipse (facoltativo ma consigliato).
  • Conoscenze di base di Java e dei concetti di rete.

Configurare GroupDocs.Search per Java

Puoi aggiungere la libreria al tuo progetto tramite Maven o scaricando direttamente il JAR.

Configurazione 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

In alternativa, scarica l’ultimo JAR da Rilasci di GroupDocs.Search per Java.

Passaggi per l’acquisizione della licenza

  • Prova gratuita: Inizia con una prova per esplorare le funzionalità principali.
  • Licenza temporanea: Ottieni una licenza di test estesa da questa pagina.
  • Acquisto: Ottieni una licenza completa per le distribuzioni in produzione.

Inizializzazione e configurazione di base

Crea un’istanza di Index che punti a una cartella dove verrà memorizzato l’indice di ricerca:

import com.groupdocs.search.*;

public class SearchSetup {
    public static void main(String[] args) {
        // Create an instance of Index
        Index index = new Index("path/to/index/directory");
        System.out.println("GroupDocs.Search initialized successfully.");
    }
}

Guida all’implementazione

Come evidenziare i risultati di ricerca Java in una rete distribuita

Configurazione della rete di ricerca

Per prima cosa, definisci dove vivono i tuoi documenti e quale porta utilizzerà la rete.

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

String basePath = "YOUR_DOCUMENT_DIRECTORY/AdvancedUsage/Scaling/HighlightingResultsInNetwork/";
int basePort = 49116; // Change if port is busy

Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
  • basePath – la cartella radice contenente i file da indicizzare.
  • basePort – la porta TCP per la comunicazione tra nodi; scegli una porta non in uso.

Distribuzione dei nodi della rete di ricerca

Distribuisci uno o più nodi in base alla configurazione. Il primo nodo diventa il master.

import com.groupdocs.search.scaling.*;

SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);
SearchNetworkNode masterNode = nodes[0];
  • nodes – un array di tutti i nodi in esecuzione.
  • masterNode – coordina l’indicizzazione e la distribuzione delle query.

Sottoscrizione agli eventi dei nodi della rete di ricerca

Collega i listener al nodo master per ricevere notifiche in tempo reale (ad esempio, al completamento dell’indicizzazione).

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

SearchNetworkNodeEvents.subscribe(masterNode);

Indicizzazione delle directory nel nodo di rete

Indirizza il nodo verso la/e cartella/e da indicizzare. La classe di supporto Utils.DocumentsPath risolve la cartella dei dati di esempio.

import com.groupdocs.search.examples.Utils;
import com.groupdocs.search.options.*;

IndexingDocuments.addDirectories(masterNode, Utils.DocumentsPath);

Ricerca di testo attraverso i nodi della rete

Esegui una query su tutti i nodi e recupera i documenti corrispondenti.

import java.util.ArrayList;
import com.groupdocs.search.scaling.results.*;

ArrayList<NetworkFoundDocument> documents = TextSearchInNetwork.searchAll(masterNode, "ipsum", false);
highlightInDocument(masterNode, documents.get(0), 3); // Highlight results from the first found document.
  • Sostituisci "ipsum" con qualsiasi termine tu voglia trovare.
  • Il metodo highlightInDocument (mostrato di seguito) applicherà l’evidenziazione.

Evidenziazione di più termini nel documento – Evidenziare i risultati di ricerca

Il metodo seguente dimostra come evidenziare i frammenti attorno a ciascuna corrispondenza. Mostra anche come controllare il numero di termini circostanti, soddisfacendo la keyword secondaria highlight multiple terms document.

import com.groupdocs.search.highlighters.*;
import com.groupdocs.search.options.*;

public static void highlightInDocument(
    SearchNetworkNode node,
    NetworkFoundDocument document,
    int maxFragments) {
    
    Searcher searcher = node.getSearcher();
    FragmentHighlighter highlighter = new FragmentHighlighter(OutputFormat.PlainText);

    HighlightOptions options = new HighlightOptions();
    options.setTermsAfter(5);
    options.setTermsBefore(5);
    options.setTermsTotal(15);

    searcher.highlight(document, highlighter, options); // Perform highlighting on the document.

    FragmentContainer[] result = highlighter.getResult();
    for (FragmentContainer container : result) {
        if (container.getCount() == 0) continue;

        String[] fragments = container.getFragments();
        int count = Math.min(fragments.length, maxFragments);
        for (int j = 0; j < count; j++) {
            // Print each fragment within the specified limit.
        }
    }
}
  • OutputFormat.PlainText – restituisce snippet in testo semplice; puoi passare a HTML per un’interfaccia più ricca.
  • HighlightOptions – controlla quante parole prima/dopo ogni corrispondenza sono incluse (setTermsBefore, setTermsAfter).
  • maxFragments – limita il numero di snippet visualizzati per documento.

Chiusura dei nodi di rete

Quando hai terminato, spegni ogni nodo per liberare le risorse.

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

Applicazioni pratiche

  • Gestione documentale aziendale: Centralizza i file aziendali e consenti ai dipendenti di individuare istantaneamente contratti o policy rilevanti.
  • Fascicoli legali: Evidenzia rapidamente i documenti di precedenti evidenziando i termini legali chiave.
  • Basi di conoscenza R&S: I ricercatori possono cercare brevetti o articoli tecnici e vedere gli estratti evidenziati.
  • Cataloghi e‑commerce: Permetti agli acquirenti di trovare prodotti per parola chiave con corrispondenze evidenziate nelle descrizioni.
  • Sistemi bibliotecari: Gli utenti possono cercare tra migliaia di libri e visualizzare i passaggi evidenziati senza aprire ogni file.

Considerazioni sulle prestazioni

  • Mantieni gli indici aggiornati: Reindicizza i file modificati ogni notte o utilizza aggiornamenti incrementali.
  • Sfrutta più nodi: Distribuisci l’indicizzazione e il carico delle query per evitare colli di bottiglia.
  • Ottimizza HighlightOptions: Ridurre termsBefore/After diminuisce l’uso di memoria per documenti molto grandi.

Problemi comuni e risoluzione

SintomoCausa probabileRisoluzione
Nessun risultato restituitoIndice non creato o puntamento a cartella errataVerifica Utils.DocumentsPath ed esegui nuovamente IndexingDocuments.addDirectories
L’output dell’evidenziazione è vuotoLimiti di HighlightOptions troppo bassi o problema di codifica del documentoAumenta termsTotal o assicurati che la codifica del documento sia supportata
Errore di conflitto di portabasePort già in usoScegli un numero di porta diverso (es. 49117)
Eccezione di licenzaFile di licenza mancante o scadutoPosiziona un file GroupDocs.Search.lic valido nella radice dell’applicazione

Domande frequenti

D: Posso distribuire più nodi della rete di ricerca per bilanciare il carico?
R: Sì, distribuire diversi nodi distribuisce il lavoro di indicizzazione e query, migliorando scalabilità e tempi di risposta.

D: Come posso evidenziare più termini di ricerca nello stesso documento?
R: Passa un elenco di termini al metodo highlight e configura HighlightOptions per mostrare le parole circostanti per ogni corrispondenza.

D: È possibile sottoscrivere eventi di ricerca in tempo reale?
R: Assolutamente. Usa SearchNetworkNodeEvents.subscribe(masterNode) per ricevere callback sul progresso dell’indicizzazione, esecuzione delle query ed errori.

D: Quali formati di file supporta GroupDocs.Search per l’indicizzazione e l’evidenziazione?
R: Oltre 50 formati, tra cui DOCX, PDF, HTML, TXT, PPTX e molti altri.

D: Come posso migliorare la velocità di ricerca su collezioni molto grandi?
R: Aggiorna regolarmente gli indici, distribuiscili su più nodi e affina HighlightOptions per limitare la dimensione dei frammenti.

Conclusione

Seguendo questa guida disponi ora di un’installazione completa e pronta per la produzione di highlight search results java con GroupDocs.Search. Puoi scalare la soluzione su una rete, indicizzare qualsiasi tipo di documento supportato, eseguire query rapide e restituire snippet evidenziati che aiutano gli utenti a trovare esattamente ciò di cui hanno bisogno. Esplora i prossimi passi—integrare i risultati in un’interfaccia web, aggiungere ricerca a faccette o combinare con OCR per PDF scansionati.


Ultimo aggiornamento: 2026-01-08
Testato con: GroupDocs.Search for Java 25.4
Autore: GroupDocs