Prima di affrontare Lucene e capire cosa è, può essere utile chiarire il concetto di API. Con questo acronimo si fa riferimento all’interfaccia di programmazione di un’applicazione (Application Programming Interface), vale a dire strumenti software che svolgono funzioni specifiche o librerie software che permettono di implementare funzionalità in altri programmi.
La risposta alla domanda cos’è Lucene, a questo punto è piuttosto semplice: Lucene è una API open source.
A cosa serve Lucene
La funzionalità specifica di Lucene è quella di indicizzare documenti e di effettuare ricerche full text all’interno dell’archivio creato. Si potrebbe pensare erroneamente che Lucene sia un motore di ricerca, eppure non è così.
Seppure questa API sia la tecnologia alla base di molti motori di ricerca, questi strumenti utilizzano anche altri componenti.
Molti di coloro che si pongono la domanda: “Cosa è Lucene”, probabilmente hanno già sperimentato tutte le sue potenzialità nella vita di ogni giorno. Tra le varie applicazioni che l’API ha trovato ce ne sono sicuramente di molto note, come la ricerca full-text di Wikipedia. Con l’integrazione in Solr, anche il servizio annunci di La Repubblica utilizza Lucene.
Lucene, inoltre, è un componente essenziale di uno strumento diffuso tra le imprese per la gestione dei contenuti aziendali business-critical: il software ECM e BPM Alfresco.
Come funziona Lucene: la ricerca e l’indicizzazione
La velocità di risposta alle query effettuate è il punto di forza di Lucene. La rapidità è possibile grazie a una ricerca che non si basa sul full-text del documento, ma su un indice attraverso un sistema noto come inverted index, vale a dire che la ricerca non viene effettuata pagina per pagina alla per l’individuazione della keyword, ma la keyword viene ricerca in un indice costituito da tutte le pagine dei documenti archiviati.
Ciascun documento viene archiviato principalmente in due campi (Fields):
- Title: il titolo del documento;
- Text: il contenuto testuale del documento.
Cos’è la Lucene Query Syntax?
Con il termine Lucene Query Syntax si fa riferimento al linguaggio che permette di effettuare ricerche direttamente in Lucene (senza impiegare altre API per tale funzione).
Ecco quali sono le principali funzionalità accessibili attraverso la Lucene Query Syntax:
Specificare il campo nel quale effettuare la ricerca (Title o Text);
Specificare su quale campo focalizzarsi maggiormente;
Effettuare query booleane, attraverso operatori quali AND, OR e NOT.