Skip to main content

Elasticsearch

Elasticsearch je open-source distribuovaná databáza navrhnutá na rýchle vyhľadávanie a analýzu veľkých objemov dát. V našom projekte je využitý na indexovanie a vyhľadávanie dát, ktoré sme extrahovali z PDF dokumentov. V budúcnosti sa plánuje využitie Elasticsearch-u aj na indexovanie a vyhľadávanie dát z videzáznamov prednášok, konkrétne z transkripcie ich audia.

Implementácia Elasticsearch-u do projektu

Elasticsearch je v projekte nasadený prostredníctvom Docker kontajnera, ktorý je spúšťaný pomocou Docker Compose. K tomuto kontajneru sú pripojené jednotlivé mikroslužby, ktoré umožňujú indexovanie a vyhľadávanie dokumentov v Elasticsearch. Konektivita medzi Elasticsearch-om a mikroslužbami je aktuálne realizovaná cez REST API, pričom v budúcnosti je plánované nahradiť túto implementáciu technológiou Kafka.

K Elasticsearch-u sme taktiež pripojili nástroj Kibana, ktorý poskytuje vizualizáciu databázy Elasticsearch. Dobudúcna sa uvažuje aj nad integráciou nástroja Logstash na logovanie dát do Elasticsearch-u, avšak toto riešenie ešte nie je definitívne.

Elasticsearch je navrhnutý ako samostatný modul spoločný pre všetky mikroslužby. Tento prístup umožňuje plné využitie funkcií Elasticsearch-u, slúži ako prevencia pred duplicitným kódom a minimalizuje potenciálne problémy s indexovaním, nakoľko eliminujeme potrebu implementovať Elasticsearch zvlášť pre každú mikroslužbu.

Štruktúra projektu

Integrácia Elasticsearchu-u do projektu je znázornená na diagrame nižšie. Diagram obsahuje nasledujúce elementy:

  • Elasticsearch - kontajner Elasticsearch-u,
  • Kibana - vizualizácia databázy Elasticsearch,
  • Text microservice - mikroslužba, ktorá indexuje text do Elasticsearch-u,
  • Image microservice - mikroslužba, ktorá indexuje obrázky do Elasticsearch-u,
  • Equation microservice - mikroslužba, ktorá indexuje rovnice do Elasticsearch-u,
  • Video microservice - mikroslužba, ktorá indexuje video do Elasticsearch-u.

ilustration-image