Diplomová práce: Vyhledávání jako služba

V rámci své diplomové práce jsem se rozhodl vytvořit nástroj, který bude poskytovat fulltextové vyhledávání jako služba, přičemž hlavní sílovou skupinou jsou e-shopy.

Typický případ použití vypadá následovně:

  • Provozovatel e-shopu chce implementovat fulltextové výhledávání, má k dispozici data v XML formátu
  • Zaregistruje se v službě a zadá URL souboru s produkty
  • Následně obdrží přístup k API, vyhledávání na e-shop implementuje jako volání tohoto API

A proč by měl někdo takovou službu používat?

  • Zpracování českého jazyka není triviální
  • Implementace vyhledávání svépomocí zabere nějaký čas
  • Rychlost vyhledávání je klíčová (s rostoucí zítěží a množstvím dat)

Video: Ukázka aplikace z pohledu uživatele

Detaily implementace

Pro samotné vyhledávání a ukládání dat jsem použil Elasticsearch z důvodu podpory velkého množství funkcí pro fulltextové vyhledávání, výkonnost a snadnou škálovatelnost. Veškerá funkčnost služby je dostupná přes API, přičemž aplikace je psaná v jazyce Go. Hlavním důvodem je rychlost - ať už jde o samotnou aplikaci, rychlost vývoje nebo deploymentu. Aplikace je nasazována automaticky pomocí CircleCI a její distribuce je řešena pomocí nástroje Docker. Zdrojové kódy jsou uloženy na GitHubu a dokumentace API je dostupná v nástroji Apiary.

Zdroje a odkazy

Luděk Veselý

PHP Developer