Come eseguire ricerche regex in Java con GroupDocs.Search

Cercare tra migliaia di documenti di testo può sembrare come trovare un ago in un pagliaio. Come eseguire ricerche regex in Java diventa semplice quando si combina il potente motore di espressioni regolari del linguaggio con GroupDocs.Search, una libreria che costruisce un indice per un abbinamento di pattern ultra‑veloce. Nei prossimi minuti vedrai come installare la libreria, creare un indice, aggiungere file e eseguire sia query regex basate su testo che orientate a oggetti. Alla fine sarai pronto a integrare una ricerca basata su pattern robusta in qualsiasi applicazione Java.

Risposte rapide

  • Qual è la libreria principale? GroupDocs.Search for Java
  • Come inizio? Aggiungi la dipendenza Maven e istanzia un oggetto Index
  • Posso filtrare il contenuto con regex? Sì – usa query regex per scenari di filtraggio del contenuto
  • Ho bisogno di una licenza? È necessario un trial gratuito o una licenza temporanea per l’uso in produzione
  • Quale versione di JDK è supportata? Java 8 o superiore

Cos’è la ricerca regex?

La ricerca regex ti consente di individuare pattern come date, indirizzi email o caratteri ripetuti su molti file in un’unica operazione. Trasforma una query di testo semplice in uno scanner potente basato su regole, capace di estrarre o bloccare contenuti al volo.

Perché utilizzare GroupDocs.Search per la ricerca regex?

GroupDocs.Search indicizza i documenti una sola volta e poi riutilizza quell’indice per ogni query, offrendo fino a 10× più velocità rispetto alla scansione grezza dei file. La libreria supporta oltre 30 formati di file (PDF, DOCX, XLSX, PPTX, TXT, HTML e altri) e può gestire file di centinaia di pagine senza caricare l’intero documento in memoria.

Prerequisiti

  • Java Development Kit (JDK) 8 o superiore
  • Maven per la gestione delle dipendenze
  • Familiarità di base con le espressioni regolari Java

Librerie e dipendenze richieste

Aggiungi GroupDocs.Search al tuo progetto Maven:

<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>

In alternativa, scarica l’ultimo JAR da GroupDocs.Search for Java releases.

Acquisizione della licenza

Ottieni una prova gratuita o una licenza temporanea da GroupDocs.License e caricala all’avvio dell’applicazione.

Configurazione di GroupDocs.Search per Java

Informazioni sull’installazione

  1. Integrazione Maven: Aggiungi il repository e la dipendenza mostrati sopra al tuo pom.xml.
  2. Download diretto: Posiziona i file JAR nel classpath del tuo progetto.
  3. Applicazione della licenza: Carica il file di licenza all’avvio dell’applicazione.
import com.groupdocs.search.*;

public class SearchSetup {
    public static void main(String[] args) {
        // Initialize the index by specifying a directory.
        String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\output\\AdvancedUsage\\Searching\\RegularExpressionSearch";
        Index index = new Index(indexFolder);

        System.out.println("Index created successfully at: " + indexFolder);
    }
}

Componenti principali

La classe Index è il componente centrale che memorizza i token ricercabili estratti dai tuoi documenti. Consente una ricerca rapida di qualsiasi termine o pattern senza dover rileggere i file originali.

Come creare un indice

Creare un indice è semplice: istanzia la classe Index con il percorso di una cartella dove verranno salvati i file dell’indice. Il costruttore crea i file di database necessari al primo utilizzo e prepara il motore per l’aggiunta e la ricerca dei documenti. Una volta creato, riutilizza lo stesso indice per tutte le query.

String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\output\\AdvancedUsage\\Searching\\RegularExpressionSearch";
Index index = new Index(indexFolder);

Come aggiungere documenti

Per rendere un file ricercabile, chiama index.add con un’istanza di Document (o DocumentInfo) che punta al percorso del file. La libreria analizza il contenuto, estrae i token e li memorizza nell’indice. L’operazione può essere eseguita su file singoli o in batch, e gli aggiornamenti vengono uniti in modo incrementale.

index.add("YOUR_DOCUMENT_DIRECTORY");
system.out.println("Documents added to the index.");

Come eseguire una ricerca di espressione regolare in forma testuale

RegexQuery definisce una query di ricerca basata su espressione regolare. Carica una RegexQuery con un pattern di testo semplice e passala al metodo search dell’Index. Il motore valuta il pattern sui token indicizzati e restituisce i riferimenti ai documenti corrispondenti, rendendo le ricerche una tantum rapide e semplici.

String query1 = "^((.)\\2{1,})";

Come eseguire una ricerca di espressione regolare in forma oggetto

RegexQuery può anche essere costruita come oggetto e riutilizzata in più ricerche. Definisci la query una volta, configura opzioni come l’insensibilità al maiuscolo/minuscolo o il fuzzy matching, e invoca index.search ripetutamente. Questo approccio migliora le prestazioni quando lo stesso pattern viene applicato a molti insiemi di documenti diversi.

SearchResult result1 = index.search(query1);
system.out.println("Number of occurrences found: " + result1.getDocumentCount());

Casi d’uso della filtrazione del contenuto con regex

Puoi impiegare regex per bloccare o segnalare automaticamente contenuti che corrispondono a determinati pattern, ad esempio:

  • Rilevare caratteri ripetuti per il filtraggio dello spam
  • Trovare sequenze simili a numeri di carta di credito per controlli di privacy dei dati
  • Estrarre date o ID per l’elaborazione a valle

Applicazioni pratiche

  1. Sistemi di gestione documentale: Individua contratti, fatture o politiche tramite pattern (ad es., numeri di fattura).
  2. Moderazione dei contenuti: Applica regole regex per moderare testi generati dagli utenti in forum o app di chat.
  3. Estrazione dati: Estrarre dati strutturati come numeri d’ordine da PDF o file Word non strutturati.

Considerazioni sulle prestazioni

  • Aggiornamenti dell’indice: Chiama index.add ogni volta che i file sorgente cambiano per mantenere i risultati aggiornati.
  • Gestione della memoria: Per corpora con più di 1 milione di documenti, abilita l’indicizzazione incrementale per mantenere l’uso dell’heap sotto controllo.
  • Progettazione delle regex: Mantieni i pattern concisi; un pattern come \d{4}-\d{2}-\d{2} è 3× più veloce di un’espressione con molti wildcard come .*.

Conclusione

Ora sai come eseguire ricerche regex in Java usando GroupDocs.Search, dall’installazione della libreria alla creazione di un indice, fino all’esecuzione di query sia basate su testo che orientate a oggetti. Queste tecniche ti permettono di aggiungere una ricerca veloce e consapevole dei pattern a qualsiasi applicazione Java, sia che tu stia costruendo un portale documentale, uno scanner di conformità o una pipeline di data‑mining.

Domande frequenti

Q: Qual è la differenza tra query regex basate su testo e query regex basate su oggetto in GroupDocs.Search?
A: Le query basate su testo sono rapide e monolinea, mentre le query basate su oggetto forniscono definizioni riutilizzabili e tipizzate che possono essere memorizzate e riutilizzate in più ricerche.

Q: GroupDocs.Search può indicizzare documenti non testuali come PDF o file Excel?
A: Sì, la libreria estrae testo ricercabile da PDF, DOCX, XLSX, PPTX e oltre 30 altri formati.

Q: Come aggiorno un indice di ricerca esistente dopo aver aggiunto nuovi file?
A: Chiama index.add con i documenti nuovi o modificati; la libreria unirà le modifiche senza ricostruire l’intero indice.

Q: Quali sono le insidie comuni quando si usa regex con GroupDocs.Search?
A: Pattern troppo generici (ad es., .*) possono causare degrado delle prestazioni, e espressioni malformate possono non restituire risultati. Testa sempre i pattern su un set di campioni prima.

Q: Dove posso trovare tutorial più avanzati su GroupDocs.Search?
A: Visita la GroupDocs Documentation per guide approfondite, riferimenti API e progetti di esempio.

Ultimo aggiornamento: 2026-07-31
Testato con: GroupDocs.Search 25.4
Autore: GroupDocs

SearchQuery query2 = SearchQuery.createRegexQuery("^(.)\\1{1,}");
SearchResult result2 = index.search(query2);
system.out.println("Occurrences found using object form: " + result2.getDocumentCount());

Tutorial correlati