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.