Evidenziare testo java con GroupDocs.Search
Nelle moderne applicazioni aziendali, evidenziare testo java è essenziale per trasformare i risultati di ricerca grezzi in intuizioni leggibili istantaneamente. Che tu stia costruendo un portale di revisione legale, un motore di ricerca accademica o una dashboard di supporto clienti, la capacità di individuare e enfatizzare visivamente i termini di ricerca fa risparmiare agli utenti innumerevoli secondi di scansione manuale. Questo tutorial mostra come utilizzare GroupDocs.Search for Java per cercare documenti java, indicizzare documenti java, e applicare sia l’evidenziazione a livello di documento intero sia a livello di frammento, il tutto con poche righe di codice.
Risposte rapide
- Che cosa significa “search and highlight text”? Significa individuare i termini di ricerca all’interno di un documento e enfatizzarli visivamente (ad esempio, con uno sfondo colorato).
- Quale libreria fornisce questa funzionalità? GroupDocs.Search for Java.
- Ho bisogno di una licenza? Una prova gratuita è sufficiente per la valutazione; è necessaria una licenza completa per l’uso in produzione.
- Posso personalizzare i colori di evidenziazione? Sì—qualunque colore RGB può essere impostato tramite
HighlightOptions. - Il supporto all’evidenziazione di frammenti è disponibile? Assolutamente; è possibile definire termini prima/dopo la corrispondenza per creare snippet concisi.
Come evidenziare testo java nei documenti
Per evidenziare testo java nei documenti, prima crea un indice dei file sorgente utilizzando le impostazioni di compressione appropriate, poi esegui una query di ricerca per individuare i termini desiderati e infine esporta i risultati in HTML, PDF o testo semplice con ogni corrispondenza avvolta in un tag di evidenziazione. Questo processo in tre passaggi garantisce un’evidenziazione rapida e accurata su grandi collezioni.
- Crea un indice con impostazioni di compressione che mantengono ridotto l’ingombro di archiviazione.
- Esegui una ricerca usando la stringa di query che desideri evidenziare.
- Genera l’output (HTML, PDF o testo semplice) dove ogni occorrenza del termine di ricerca è avvolta in un tag di evidenziazione.
Che cos’è la ricerca e l’evidenziazione del testo?
La ricerca e l’evidenziazione del testo è il processo di scansione di una collezione indicizzata per una determinata query, il recupero dei documenti corrispondenti e poi la marcatura di ogni occorrenza del termine di ricerca all’interno dell’output (HTML, PDF, ecc.). Questo indizio visivo aiuta gli utenti finali a individuare immediatamente le informazioni rilevanti.
Perché utilizzare GroupDocs.Search for Java?
GroupDocs.Search for Java offre indicizzazione ad alte prestazioni (fino a 50 GB per indice con Compression.High), evidenziazione avanzata che funziona su documenti interi e frammenti personalizzati, e supporto cross‑format per oltre 30 tipi di file—incluse DOCX, PDF, PPTX e TXT. La libreria offre anche indicizzazione incrementale, consentendo di aggiungere nuovi file senza ricostruire l’intero indice, riducendo i tempi di inattività fino all'80 % in implementazioni su larga scala.
Prerequisiti
- Java Development Kit (JDK) 8 o successivo.
- Maven per la gestione delle dipendenze.
- Un IDE come IntelliJ IDEA o Eclipse.
- Familiarità di base con la sintassi Java.
Configurazione di GroupDocs.Search for Java
Aggiungi il repository GroupDocs e la dipendenza al tuo pom.xml:
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-search</artifactId>
<version>25.4</version>
</dependency>
Puoi anche scaricare l’ultimo JAR direttamente dal sito ufficiale: GroupDocs.Search for Java releases.
Acquisizione della licenza
Inizia con una prova gratuita o ottieni una licenza temporanea per la valutazione. Per le implementazioni in produzione, acquista una licenza completa per sbloccare tutte le funzionalità.
Guida all’implementazione
L’implementazione è suddivisa in due sezioni pratiche: evidenziazione in documenti interi e evidenziazione in frammenti. Entrambe le sezioni includono i passaggi essenziali per come evidenziare documenti Java usando GroupDocs.Search.
Configurazione delle impostazioni dell’indice
Prima dell’indicizzazione, configura lo storage per utilizzare alta compressione—ciò riduce l’uso del disco fino al 70 % mantenendo la velocità di ricerca.
IndexSettings è l’oggetto di configurazione che controlla come l’indice è memorizzato su disco. Imposta Compression su Compression.High per abilitare questa ottimizzazione.Compression specifica il livello di compressione dei dati applicato ai file dell’indice, con Compression.High che fornisce la massima riduzione delle dimensioni.
Evidenziazione in documenti interi
Passo 1: creare e popolare l’indice
Crea una cartella per l’indice e aggiungi tutti i file sorgente che desideri indicizzare. La classe Index rappresenta il contenitore ricercabile.
Passo 2: eseguire la ricerca e applicare l’evidenziazione
Cerca il termine (ad esempio, ipsum) e genera un file HTML con le corrispondenze evidenziate. Usa HighlightOptions per specificare il colore di evidenziazione e se utilizzare stili inline.
HighlightOptions consente di definire i colori di primo piano e di sfondo, nonché la classe CSS che verrà applicata a ciascun termine evidenziato.
HtmlHighlighter genera output HTML con i termini evidenziati in base alle opzioni fornite.SearchResult contiene l’elenco dei documenti corrispondenti e le posizioni di ciascun termine trovato.
Risposta diretta: Carica il tuo indice, chiama search("ipsum") e passa il SearchResult risultante insieme a un’istanza configurata di HighlightOptions al HtmlHighlighter. L’evidenziatore restituisce HTML dove ogni occorrenza di “ipsum” è avvolta in un <span> con lo sfondo del colore scelto.
Opzioni chiave spiegate
- Compression – l’alta compressione salva spazio di archiviazione.
- HighlightColor – imposta qualsiasi valore RGB per corrispondere alla palette UI.
- UseInlineStyles –
falsegenera HTML pulito che può essere stilizzato globalmente con CSS.
Evidenziazione in frammenti
Passo 1: indicizzare e cercare (come sopra)
Gli stessi passaggi di indicizzazione e ricerca si applicano; riutilizzi gli oggetti Index e SearchResult.
Passo 2: definire il contesto del frammento e evidenziare
Specifica quanti termini prima e dopo la corrispondenza devono apparire in ogni frammento con FragmentOptions.
FragmentOptions controlla il numero di parole circostanti (termsBefore e termsAfter) incluse in ogni snippet, permettendo di bilanciare il contesto rispetto alla lunghezza dello snippet.
Passo 3: recuperare e scrivere i frammenti evidenziati
Raccogli i frammenti generati e scrivili in un file HTML. Ogni frammento è già evidenziato secondo le HighlightOptions configurate.
fragmentHighlighter è un’utilità che crea snippet evidenziati da un SearchResult usando le opzioni di frammento e evidenziazione specificate.
Risposta diretta: Dopo aver ottenuto il SearchResult, chiama fragmentHighlighter.highlight(searchResult, fragmentOptions, highlightOptions). Il metodo restituisce una lista di snippet HTML, ciascuno contenente il termine corrispondente circondato dal numero configurato di parole di contesto e evidenziato con il colore scelto.
Applicazioni pratiche
- Revisione di documenti legali – evidenzia istantaneamente statuti, clausole o riferimenti a casi in migliaia di contratti.
- Ricerca accademica – individua la terminologia chiave in decine di PDF e file Word, riducendo il tempo di revisione della letteratura fino al 60 %.
- Supporto clienti – individua numeri d’ordine o codici di errore nelle cronologie dei ticket, consentendo agli operatori di risolvere i problemi più rapidamente.
Considerazioni sulle prestazioni
- Dimensione dell’indice – l’alta compressione (
Compression.High) riduce l’ingombro su disco fino al 70 % senza impatto di latenza evidente. - Contesto del frammento – valori più grandi di
termsBefore/Afteraumentano la leggibilità dello snippet ma possono aggiungere 10–15 ms per query. - Gestione della memoria – monitora l’heap JVM durante l’indicizzazione di grandi corpora; considera l’indicizzazione incrementale per dataset superiori a 2 GB per mantenere l’uso della memoria sotto 1 GB.
Problemi comuni e soluzioni
- Errori di indicizzazione – verifica i percorsi dei file e assicurati che l’applicazione abbia permessi di lettura/scrittura sulla cartella dell’indice.
- Nessuna evidenziazione appare – conferma che
UseInlineStylescorrisponda al tuo formato di output (HTML vs. PDF). - Colore non applicato – assicurati che i valori RGB siano nel range 0‑255 e che il visualizzatore rispetti il CSS inline o la classe CSS fornita.
Domande frequenti
Q: Quali sono i vantaggi dell’utilizzare GroupDocs.Search for Java?
A: Offre indicizzazione veloce e scalabile, evidenziazione personalizzabile e supporto per oltre 30 formati di documento, elaborando file di 500 pagine in meno di 2 secondi su un server tipico.
Q: Come posso integrare GroupDocs.Search con un’API REST?
A: Esporre i metodi di ricerca e evidenziazione tramite controller Spring Boot, restituendo snippet HTML o payload JSON che contengono i frammenti evidenziati.
Q: La libreria gestisce file protetti da password?
A: Sì—fornisci la password quando aggiungi il documento all’indice tramite addDocument(filePath, password).
Q: Posso personalizzare il markup di evidenziazione oltre al colore?
A: Assolutamente; puoi assegnare una classe CSS con options.setCssClass("myHighlight") e stilizzarla globalmente, oppure modificare l’HTML generato dopo l’evidenziazione.
Q: Quale versione è stata testata per questa guida?
A: Il codice è stato validato con GroupDocs.Search 25.4.
Q: Come impostare le opzioni di evidenziazione java per usare una classe CSS invece di stili inline?
A: Chiama options.setUseInlineStyles(false) e definisci una regola CSS per la classe che assegni tramite options.setCssClass("myHighlight").
Q: Esiste un modo per evidenziare termini direttamente nell’output PDF?
A: Sì—GroupDocs.Search funziona con input PDF, e l’evidenziatore genera HTML che può essere incorporato in un visualizzatore PDF o riconvertito in PDF usando GroupDocs.Conversion.
Ultimo aggiornamento: 2026-09-27
Testato con: GroupDocs.Search 25.4
Autore: GroupDocs
<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>
IndexSettings settings = new IndexSettings();
settings.setTextStorageSettings(new TextStorageSettings(Compression.High));
String indexFolder = "/path/to/your/document/directory/HighlightingInEntireDocument";
Index index = new Index(indexFolder, settings);
index.add("/path/to/your/documents");
SearchResult result = index.search("ipsum");
if (result.getDocumentCount() > 0) {
FoundDocument document = result.getFoundDocument(0);
OutputAdapter outputAdapter = new FileOutputAdapter(OutputFormat.Html, "/path/to/your/output/directory/Highlighted.html");
Highlighter highlighter = new DocumentHighlighter(outputAdapter);
HighlightOptions options = new HighlightOptions();
options.setHighlightColor(new Color(150, 255, 150)); // Custom green shade
options.setUseInlineStyles(false); // Prefer CSS for styling
index.highlight(document, highlighter, options);
}
String indexFolder = "/path/to/your/document/directory/HighlightingInFragments";
Index index = new Index(indexFolder, settings);
index.add("/path/to/your/documents");
SearchResult result = index.search("ipsum");
HighlightOptions options = new HighlightOptions();
options.setTermsBefore(5); // Include 5 terms before the match
options.setTermsAfter(5); // Include 5 terms after the match
options.setHighlightColor(new Color(127, 200, 255)); // Custom blue shade
options.setUseInlineStyles(true); // Use inline styles for emphasis
FoundDocument document = result.getFoundDocument(0);
FragmentHighlighter highlighter = new FragmentHighlighter(OutputFormat.Html);
index.highlight(document, highlighter, options);
StringBuilder stringBuilder = new StringBuilder();
FragmentContainer[] fragmentContainers = highlighter.getResult();
for (FragmentContainer container : fragmentContainers) {
String[] fragments = container.getFragments();
if (fragments.length > 0) {
stringBuilder.append("\n<br>").append(container.getFieldName()).append("<br>\n");
for (String fragment : fragments) {
stringBuilder.append(fragment).append("\n");
}
}
}
try {
Files.write(Paths.get("/path/to/your/output/directory/Fragments.html"), stringBuilder.toString().getBytes());
} catch (IOException ex) {
// Handle exceptions
}