Documente Academic
Documente Profesional
Documente Cultură
Ginel Guiu
Ce este Elasticsearch?
Elasticsearch este un motor de căutare de tip text, scalabil și open-source. Permite
stocarea, căutarea și analiza volumelor mari de date în timp real. Este folosit în general ca
tehnologia de bază a aplicațiilor ce implementază funcționalități de căutare complexe.
Elasticsearch oferă un sistem distribuit bazat pe Lucene StandardAnalyzer pentru indexare și
predicție automată, folosind un REST API bazat pe JSON pentru transpune funcționalitățile
Lucene. Este ușor de setat, întrucât vine cu funcționalități de bază intuitive și ascunde
complexitatea pentru începători.
Elasticsearch nu folosește schema, recurgând la valori default pentru a indexa datele,
mai puțin în cazurile în care utilizatorul creează mapări în funcție de nevoile personale.
Funcționalitățile Elasticsearch sunt expuse, după cum spuneam, ca API-uri REST în felul
următor:
Avantaje
Diversitatea opțiunilor de căutare – Elasticsearch implementează o mulțime de
funcționalități când vine vorba de căutare, cum ar fi împărțirea personalizată a
textului în cuvinte, fațete pentru căutare, căutare full-text, autocompletare și
căutare instantă. De asemenea, propune și fuzzy search pentru a incorpora și
greșelille de scriere.
Orientarea de tip document – stocarea documentelor JSON și indexarea tuturor
câmpurilor oferă ca rezultat o performanță crescută.
Viteză – Elasticsearch este capabil să execute interogări complexe într-un timp
incredibil de scurt. De asemenea, stochează în cache aproape toate interogările
structurate (structured queries) folosite des ca un filtru pentru setul de rezultate
și le execută o singură dată. Pentru orice altă cerere ce conține un filtru din
cache, verifică rezultatul din cache.
Scalabilitate – dezvoltatorii apreciază Elasticsearch pentru că este un sistem
distribuit, oferind abilitatea de a extinde resurse și echilibra încărcarea dintre
noduri într-un cluster.
Înregistrarea datelor – Elasticsearch loghează orice schimbări efectuate în log-uri
de tranzacții, pe noduri multiple în cluster, pentru a minimiza șansa pierderii
datelor.
Optimizarea interogărilor – Elasticsearch are un DSL(Domain Specific Language)
bazat pe JSON eficient, care le permite dezvoltatorilor să realizeze interogări
complexe și să le optimizeze pentru a primi cele mai precise rezultate în urma
căutărilor
Cum poate fi integrat Elasticsearch
2. Indexarea documentelor – odată ce a fost rulat și, astfel, primul cluster este disponibil,
utilizatorul poate își poate indexa datele. Acest lucru poate fi realizat simplu printr-o
operație de tip PUT, căreia i se specifica indexul ce dorește a fi adăugat unui document
de tip JSON, id unic și una sau mai multe perechi de tip “field”: “value”. De exemplu:
PUT /student/_doc/1
{
"nume": "Guiu Ginel"
}
Mult mai utilă este, însă, indexarea de tip bulk, care îi permite utilizatorului să indexeze
un număr cât se poate de ridicat de documente. Aceasta poate fi realizată printr-o
comandă asemănătoare:
curl -H "Content-Type: application/json" -XPOST
"localhost:9200/bank/_bulk?pretty&refresh" --data-binary
"@accounts.json”
curl "localhost:9200/_cat/indices?v"
3. Începerea căutărilor – odată ce documentele au fost indexate, pot fi începute căutările
pe aceste date, fiind folosite operații de tip GET al căror body este compus din termenii
căutării.
Concluzie
Consider că acest referat subliniază perfect avantajele folosirii Elasticsearch pentru
funcționalitățile de căutare ale unei aplicații. Performanța, scalabilitatea, facilitatea
implementării și logarea extensivă reprezintă argumente care ar trebui să elimine orice dubiu
din mintea celor care consideră implementarea Elasticsearch-ului.
Personal, pot spune că am avut o experiență de tip hands-on cu Elasticsearch-ul,
întrucât, toamna trecută, ni s-a cerut la locul de muncă să implementăm Elasticsearch-ul în
aplicația de care ne ocupam. Aceasta lucra cu milioane de companii, iar tool-ul pe care îl folosea
până atunci nu mai făcea față într-un mod adecvat. Odată ce am finalizat implementarea,
diferența s-a simțit notabil, iar căutarea a devenit considerabil mai rapidă. Iar acesta ar trebui
să fie primul criteriu în judecarea unui motor de căutare.
Bibliografie
https://towardsdatascience.com/an-overview-on-elasticsearch-and-its-usage-e26df1d1d24a
https://dzone.com/articles/what-is-elasticsearch-and-how-it-can-be-useful
https://marutitech.com/elasticsearch-can-helpful-business/
https://medium.com/@factoryhr/elasticsearch-introduction-implementation-and-example-
17dd66c35c35
https://dzone.com/articles/elastic-search-advantages-case-studies-amp-books
https://www.elastic.co/guide/index.html
https://www.elastic.co/guide/en/elastic-stack-get-started/current/index.html