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
HighlightOptionsper 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 -versionrestituisca 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: RidurretermsBefore/Afterdiminuisce l’uso di memoria per documenti molto grandi.
Problemi comuni e risoluzione
| Sintomo | Causa probabile | Risoluzione |
|---|---|---|
| Nessun risultato restituito | Indice non creato o puntamento a cartella errata | Verifica Utils.DocumentsPath ed esegui nuovamente IndexingDocuments.addDirectories |
| L’output dell’evidenziazione è vuoto | Limiti di HighlightOptions troppo bassi 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 (es. 49117) |
| Eccezione di licenza | File di licenza mancante o scaduto | Posiziona 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