Elasticsearch è un motore di ricerca basato su Lucene. Lucene è una API gratuita ed open source per il reperimento di informazioni ed è molto usata per la realizzazione dei motori di ricerca.
Elasticsearch, tramite interfacce web HTTP e documenti JSON, permette di interagire in maniera semplice col suo core ed effettuare ricerche full-text molto efficaci.
La mission di Elasticsearch parte da una convinzione di Shay Banon, il fondatore: “Search is something that any application should have”. Sulla base di questo credo, Banon ha lavorato per anni portando la sua azienda ai vertici della scena informatica mondiale.
Elasticsearch: sistema distribuito e scalabile
Oggi Elasticsearch è un sistema distribuito che scala orizzontalmente, basato su nodi a loro volta divisi in cluster. La comunicazione verso e da i cluster avviene attraverso delle REST API che sfruttano HTTP. Le applicazioni dei clienti che usano questo progetto possono essere scritte in qualsiasi linguaggio. L’architettura sottostante è ovviamente invisibile all’utente, che percepisce tutto come un’unica entità, sebbene la natura distribuita dello stack faccia sì che i processi siano interconnessi tra loro attraverso un continuo scambio di messaggi fra i nodi. Questi ultimi hanno dei compiti ben precisi che si dividono in autonomia, a seconda delle impostazioni che si dà ai vari load balancer. Nel caso in cui non bastino le risorse impostate allo start-up, Elasticsearch può “ampliare” la sua capacità elaborativa attivando nuovi nodi e creando nuovi cluster, in completa autonomia; da qui la sua natura scalabile.
Elasticsearch: utilizzo
Oggi grandissime aziende utilizzano Elasticsearch, come la Blizzard per l’analisi dei log e la NASA per elaborare in real time i dati provenienti dal Rover Curiosity, che passeggia su Marte.
Elasticsearch può essere utilizzato anche per i Big Data in quanto è una soluzione in grado di gestire grandi moli di dati ed è perfetto per le aziende che vogliono muovere i primi passi nel futuro dei Big Data.
Elasticsearch non è solo un motore di ricerca
Lo stack di Elasticsearch, oltre che dal motore di ricerca, è composto da:
- Beats: una data shipper che sposta i dati dalle macchine agli altri componenti dello stack;
- Logstash: parsa, trasforma e prepara i dati;
- Kibana: interagisce con Elasticsearch, producendo analisi e visualizzandole su grafici, tabelle e mappe.
Redatto da Lucia D’Adamo in collaborazione con Antonello Rabuffi