Caricamento...
img

Elasticsearch

Come funziona la piattaforma di ricerca in tempo (quasi) reale

Creato da Marco Antonio Mauro, Trainer OverNet Education, il 15/11/2021

La ricerca full text all’interno di un documento o di un archivio è sempre più necessaria: ormai qualsiasi cosa sembra avere una barra di ricerca e l’approccio più naturale per ottenere delle informazioni è cercarle usando parole chiavi, piuttosto che navigare e scorrere le pagine web tramite link e contestualità - e quindi i sistemi che rispondono a queste richieste devono farlo in maniera efficiente.

Chi ha bisogno di una ricerca full text finora ha scelto Apache Solr, il capostipite di queste soluzioni di immagazzinamento e ricerca di testo open source. Elasticsearch, però, basato su Lucene così come Solr, mantiene la sua efficienza ma aumenta e migliora le sue funzionalità. Come Solr, Elasticsearch è basato su Apache Lucene, ma è fornito di ulteriori funzionalità che sono molto utili alle più grandi aziende di IT ad oggi.

Facebook, ad esempio, utilizza Elasticsearch da diversi anni così come GitHub, Netflix, e molti altri si affidano a questo motore di ricerca interno.

La ricerca funziona attraverso un indice: anziché esaminare tutti i documenti durante una ricerca, il programma controlla un indice dei documenti creato in precedenza in cui è archiviato tutto il contenuto in maniera più efficiente.

Costruendo sulle tecnologie di Lucene, Elasticsearch aggiunge principalmente la sua adattabilità al WWW e la elasticità e clusterizzazione che velocizzano notevolmente le sue attività.

Molti nodi (server diversi) si uniscono per formare un cluster Elasticsearch facendo sharding dei dati, cioè la suddivisione di dati in “schegge” (porzioni) che sono divise sui vari nodi. Elasticsarch quindi divide i dati dell’indice e distribuisce le singole parti (shards) dividendo anche il carico di lavoro.

Come Lucene, Elasticsearch si basa sul linguaggio di programmazione Java e il motore di ricerca genera risultati in formato JSON e li consegna tramite un servizio web REST di modo da renderlo facilmente integrabile ad altri linguaggi e ad applicativi già costruiti.

Inoltre, la funzionalità che Elasticsearch offre quando associato con Kibana, Beats e Logstash, conosciuti nel loro insieme come Elastic Stack (o stack ELK), dei servizi aggiuntivi mirati all’analisi dei dati integrati con il datawarehouse aziendale e i servizi collegati, aumenta l’efficienza delle soluzioni aziendali sia interne che esterne all’organizzazione.