:** 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
HighlightOptionsper 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 -versionriporti 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: RidurretermsBefore/Afterdiminuisce l’uso di memoria per documenti molto grandi.
Problemi comuni e risoluzione
| Sintomo | Causa probabile | Soluzione |
|---|---|---|
| Nessun risultato restituito | Indice non costruito o puntamento a cartella errata | Verifica Utils.DocumentsPath ed esegui nuovamente IndexingDocuments.addDirectories |
| L’output dell’evidenziazione è vuoto | HighlightOptions impostato troppo basso o problema di codifica del documento | Aumenta termsTotal o assicurati che la codifica del documento sia supportata |
| Errore di conflitto di porta | basePort già in uso | Scegli un numero di porta diverso (ad esempio, 49117) |
| Eccezione di licenza | File di licenza mancante o scaduto | Posiziona 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