Cos’è Elasticsearch

Elasticsearch è un motore di ricerca e analisi distribuito e open source per tutti i tipi di dati, inclusi testuali, numerici, geospaziali, strutturati e non strutturati.

Elasticsearch è basato su Apache Lucene ed è stato rilasciato per la prima volta nel 2010 da Elasticsearch N.V. (ora noto come Elastic).

Conosciuto per le sue semplici API REST, la natura distribuita, la velocità e la scalabilità, Elasticsearch è il componente centrale di Elastic Stack, un set di strumenti open source per l’acquisizione, l’arricchimento, l’archiviazione, l’analisi e la visualizzazione dei dati. Comunemente denominato ELK Stack (dopo Elasticsearch, Logstash e Kibana), Elastic Stack ora include una ricca raccolta di integratori noti come Beats per l’invio di dati a Elasticsearch.


A cosa serve Elasticsearch?

La velocità e la scalabilità di Elasticsearch e la sua capacità di indicizzare molti tipi di contenuti fanno si che possa essere utilizzato per una serie di casi d’uso:

– Ricerca nelle app mobili
– Ricerca nel sito web
– Ricerca nei documenti aziendali
– Registrazione e analisi dei log
– Metriche dell’infrastruttura e monitoraggio dei container
– Monitoraggio delle prestazioni delle applicazioni
– Analisi e visualizzazione dei dati geospaziali
– Analisi della sicurezza
– Analisi aziendale

Potrete leggere in quest’articolo un esempio pratico di applicazione di Elasticsearch con WordPress .

Come funziona Elasticsearch?

I dati grezzi fluiscono in Elasticsearch da una varietà di fonti, inclusi log, metriche di sistema e applicazioni web. L’inserimento dei dati è il processo mediante il quale questi dati grezzi vengono analizzati, normalizzati e arricchiti prima di essere indicizzati in Elasticsearch. Una volta indicizzati in Elasticsearch, gli utenti possono eseguire query complesse sui propri dati e utilizzare aggregazioni per recuperare riepiloghi complessi dei propri dati. Da Kibana, gli utenti possono creare visualizzazioni potenti dei propri dati, condividere dashboard e gestire lo stack.

Cos’è un index di Elasticsearch?

Un index in Elasticsearch è una raccolta di documenti correlati tra loro. Elasticsearch archivia i dati come documenti JSON. Ogni documento correla una serie di chiavi (nomi di campi o proprietà) con i valori corrispondenti (stringhe, numeri, valori booleani, date, matrici di valori, geolocalizzazione o altri tipi di dati).

Elasticsearch utilizza una struttura di dati chiamata indice invertito, progettata per consentire ricerche full-text molto veloci. Un indice invertito elenca ogni parola univoca che appare in qualsiasi documento e identifica tutti i documenti in cui si trova ciascuna parola.

Durante il processo di indicizzazione, Elasticsearch archivia i documenti e crea un indice invertito per rendere i dati del documento ricercabili quasi in tempo reale. L’indicizzazione viene avviata con le API dell’index, tramite le quali è possibile aggiungere o aggiornare un documento JSON in un indice specifico.

Potrete leggere questo articolo per scoprire 6 concetti fondamentai per capire Elasticsearch più profondamente.

A cosa serve Logstash?

Logstash, uno dei prodotti principali di Elastic Stack, viene utilizzato per aggregare ed elaborare i dati e inviarli a Elasticsearch. Logstash è una pipeline di elaborazione dati lato server che consente di acquisire dati da più origini contemporaneamente, arricchirli e trasformarli prima che vengano indicizzati in Elasticsearch.

A cosa serve Kibana?

Kibana è uno strumento di visualizzazione e gestione dei dati per Elasticsearch che fornisce istogrammi in tempo reale, grafici a linee, grafici a torta e mappe. Kibana include anche applicazioni avanzate come Canvas, che consente agli utenti di creare infografiche dinamiche personalizzate in base ai propri dati ed Elastic Maps per la visualizzazione dei dati geospaziali.

Perché utilizzare Elasticsearch?

Elasticsearch è veloce

Poiché Elasticsearch si basa su Lucene, eccelle nella ricerca full-text. Elasticsearch è anche una piattaforma di ricerca quasi in tempo reale, il che significa che la latenza dal momento in cui un documento viene indicizzato fino a quando diventa ricercabile è molto breve, in genere un secondo. Di conseguenza, Elasticsearch è adatto per casi d’uso sensibili al fattore tempo come l’analisi della sicurezza e il monitoraggio dell’infrastruttura.

Elasticsearch è distribuito per propria natura

I documenti archiviati in Elasticsearch vengono distribuiti su diversi contenitori noti come ‘shards’, che vengono duplicati per fornire copie ridondanti dei dati in caso di guasto hardware. La natura distribuita di Elasticsearch gli consente di scalare fino a centinaia (o addirittura migliaia) di server e di gestire petabyte di dati.

Elasticsearch è dotato di un’ampia serie di funzionalità

Oltre alla sua velocità, scalabilità e resilienza, Elasticsearch ha una serie di potenti funzionalità integrate che rendono l’archiviazione e la ricerca dei dati ancora più efficienti, come i rollup dei dati e la gestione del ciclo di vita dell’indice.

L’Elastic Stack semplifica l’acquisizione, la visualizzazione e il reporting dei dati

L’integrazione con Beats e Logstash semplifica l’elaborazione dei dati prima dell’indicizzazione in Elasticsearch. E Kibana fornisce la visualizzazione in tempo reale dei dati di Elasticsearch e delle interfacce utente per accedere rapidamente al monitoraggio delle prestazioni delle applicazioni (APM), ai log e ai dati delle metriche dell’infrastruttura.