:** GroupDocs"

Make sure markdown formatting preserved.

Now produce final content with Italian translation.

Check for any missing elements: code block placeholders remain unchanged. No shortcodes.

Make sure headings levels same.

Proceed to output.# Evidenzia i risultati di ricerca Java usando 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 tuoi file, eseguire query e, infine, evidenziare le corrispondenze direttamente nei documenti. Alla fine, avrai una soluzione pronta per la produzione che può scalare su più nodi e far risaltare immediatamente i termini rilevanti.

Risposte rapide

  • Cosa significa “highlight search results java”? Si riferisce al contrassegnare programmaticamente le 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 vengono mostrati.
  • È necessaria una licenza per eseguire questo esempio? Una prova gratuita o una licenza temporanea funziona per i test; è necessaria una licenza completa per la produzione.
  • Quale versione di Java è richiesta? Java 8 o successiva.
  • Questo approccio è adatto a grandi collezioni di documenti? Assolutamente – la rete di ricerca distribuisce l’indicizzazione e il carico delle query tra i 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 enfatizzare visivamente quei frammenti (ad esempio, circondandoli con marcatori o restituendoli come snippet evidenziati). Questo rende più semplice per gli utenti finali vedere il contesto di ogni corrispondenza senza aprire l’intero file.

Perché Highlight Search Results Java è importante

L’uso di highlight search results java migliora l’esperienza dell’utente mostrando esattamente dove appare un termine, riduce il tempo speso ad aprire file irrilevanti e aiuta i team di conformità a individuare rapidamente informazioni sensibili. Quando combinato con una rete di ricerca distribuita, la soluzione rimane reattiva anche quando il corpus di documenti cresce fino a milioni.

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. Rimuove la necessità di scrivere parser personalizzati o gestire infrastrutture di ricerca a basso livello, permettendoti di concentrarti sulla fornitura di un’esperienza utente fluida.

Prerequisiti

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

Configurazione di GroupDocs.Search per Java

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

Configurazione Maven

Add the repository and dependency to your 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 GroupDocs.Search for Java releases.

Passaggi per l’acquisizione della licenza

  • Free Trial: Inizia con una prova per esplorare le funzionalità principali.
  • Temporary License: Ottieni una licenza di test estesa da this page.
  • Purchase: Acquista una licenza completa per le distribuzioni in produzione.

Inizializzazione e configurazione di base

Create an Index instance that points to a folder where the search index will be stored:

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

First, define where your documents live and which port the network will use.

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 che desideri indicizzare.
  • basePort – la porta TCP per la comunicazione tra nodi; scegli una porta non utilizzata.

Distribuzione dei nodi della rete di ricerca

Deploy one or more nodes based on the configuration. The first node becomes the 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

Attach listeners to the master node to receive real‑time notifications (e.g., when indexing completes).

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

SearchNetworkNodeEvents.subscribe(masterNode);

Indicizzazione delle directory nel nodo di rete

Point the node to the folder(s) you want to index. The helper class Utils.DocumentsPath resolves to the sample data folder.

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

IndexingDocuments.addDirectories(masterNode, Utils.DocumentsPath);

Ricerca di testo attraverso i nodi della rete

Run a query against all nodes and retrieve the matching documents.

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.

Evidenzia 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 parola chiave 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 di 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 della rete

When you’re done, shut down every node to free resources.

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

Applicazioni pratiche

  • Enterprise Document Management: Centralizza i file aziendali e consenti ai dipendenti di individuare istantaneamente contratti o politiche pertinenti.
  • Legal Case Files: Evidenzia rapidamente documenti di precedenti evidenziando i termini legali chiave.
  • R&D Knowledge Bases: I ricercatori possono cercare brevetti o articoli tecnici e vedere estratti evidenziati.
  • E‑commerce Catalogs: Consenti agli acquirenti di trovare prodotti per parola chiave con corrispondenze evidenziate nelle descrizioni.
  • Library Systems: Gli utenti possono cercare tra migliaia di libri e visualizzare passaggi evidenziati senza aprire ogni file.

Considerazioni sulle prestazioni

  • Keep indexes fresh: Re‑indicizza i file modificati ogni notte o utilizza aggiornamenti incrementali.
  • Leverage multiple nodes: Distribuisci il carico di indicizzazione e query per evitare colli di bottiglia.
  • Tune HighlightOptions: Ridurre termsBefore/After diminuisce l’uso di memoria per documenti molto grandi.

Problemi comuni e risoluzione

SintomoCausa probabileSoluzione
Nessun risultato restituitoIndice non costruito o puntamento a cartella errataVerifica Utils.DocumentsPath ed esegui nuovamente IndexingDocuments.addDirectories
L’output dell’evidenziazione è vuotoHighlightOptions impostato troppo basso 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 (ad esempio, 49117)
Eccezione di licenzaFile di licenza mancante o scadutoPosiziona un file GroupDocs.Search.lic valido nella radice dell’applicazione

Domande frequenti

Q: Posso distribuire più nodi della rete di ricerca per il bilanciamento del carico?
A: Sì, distribuire diversi nodi sparge il lavoro di indicizzazione e query, migliorando la scalabilità e il tempo di risposta.

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

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

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

Q: Come posso migliorare la velocità di ricerca su collezioni molto grandi?
A: Aggiorna regolarmente gli indici, distribuiscili tra i nodi e ottimizza HighlightOptions per limitare la dimensione dei frammenti.


Ultimo aggiornamento: 2026-03-17
Testato con: GroupDocs.Search for Java 25.4
Autore: GroupDocs