OK, ik hoor dus regelmatig termen voorbij komen waar ik niets van begrijp. Dan ga ik op een verloren vrijdagmiddag op onderzoek uit. Deze keer was het ElasticSearch dat mijn aandacht trok. Dus ik heel youtube uitspelen en ik denk dat ik het nu begrijp, ongeveer dan:
Wat ik denk dat het is
Vond een video van een vrij onverstaanbare Tsjech die met een beetje inspanning toch stiekem wel redelijk te verstaan was.
Als ik het goed begrijp is ElasticSearch ontstaan uit de moeite die SQL databases hebben met het uitvoeren van zoek-query's. Dus stel: ik wil een zoekbalk op m'n site of app waar mensen hele brede zoekopdrachten in kunnen vullen die via een request aan mijn server doorgegeven worden. M'n server maakt dan een query met een hele berg %LIKE%'s om te zorgen dat de zoekopdracht zo breed mogelijk door de SQL engine uitgevoerd wordt. Die query's zijn zwaar en eigenlijk niet waar de database engines voor bedoeld zijn.
Dus hier komt dan elastic om de hoek kijken. In plaats van via je server software (PHP, Node, Python, whatever) alleen een CRUD operatie op je database uit te voeren, voer je diezelfde operatie uit op je Elastic Search server/service. Elastic gebruikt dat om 'bij te houden wat er in je database gebeurt' en hiermee een index op te bouwen die er puur op gericht is zoekopdrachten zo efficiënt uit te voeren. Elastic bouwt dus een soort schaduwkopie van je database op, maar dan gericht op zoekopdrachten.
Ga je nu een zoekopdracht uitvoeren (of diegene op je site of app), dan maak je niet meer die lange query met %LIKE%'s naar je SQL database, maar vraag je het je ElasticSearch server/service. Die weet veel sneller wat de mogelijke resultaten zijn.
Nu hoeft Elastic niet alles op te slaan, je kunt aangeven welke kolommen Elastic moet 'indexeren'. Als ik het goed begrijp kun je bijvoorbeeld je PHP code (of Node, of kanmijhetschelen) eerst aan Elastic laten vragen welke ID's bijvoorbeeld bij de zoekopdracht passen en dan alleen die ID's uit de database halen (wat veel minder rekenkracht kost, want je weet precies wat je moet hebben).
Waar zit ik er naast?
Ik ben er van overtuigd dat hier genoeg mensen rondhangen die er meer van weten dan ik. Dus maak ik hierboven een vreselijke fout? Of heb je een goede aanvulling voor mensen zoals ik, die helemaal bij 0 beginnen? Aanvullingen en aanmerkingen zijn altijd welkom!
Wat ik denk dat het is
Vond een video van een vrij onverstaanbare Tsjech die met een beetje inspanning toch stiekem wel redelijk te verstaan was.
Als ik het goed begrijp is ElasticSearch ontstaan uit de moeite die SQL databases hebben met het uitvoeren van zoek-query's. Dus stel: ik wil een zoekbalk op m'n site of app waar mensen hele brede zoekopdrachten in kunnen vullen die via een request aan mijn server doorgegeven worden. M'n server maakt dan een query met een hele berg %LIKE%'s om te zorgen dat de zoekopdracht zo breed mogelijk door de SQL engine uitgevoerd wordt. Die query's zijn zwaar en eigenlijk niet waar de database engines voor bedoeld zijn.
Dus hier komt dan elastic om de hoek kijken. In plaats van via je server software (PHP, Node, Python, whatever) alleen een CRUD operatie op je database uit te voeren, voer je diezelfde operatie uit op je Elastic Search server/service. Elastic gebruikt dat om 'bij te houden wat er in je database gebeurt' en hiermee een index op te bouwen die er puur op gericht is zoekopdrachten zo efficiënt uit te voeren. Elastic bouwt dus een soort schaduwkopie van je database op, maar dan gericht op zoekopdrachten.
Ga je nu een zoekopdracht uitvoeren (of diegene op je site of app), dan maak je niet meer die lange query met %LIKE%'s naar je SQL database, maar vraag je het je ElasticSearch server/service. Die weet veel sneller wat de mogelijke resultaten zijn.
Nu hoeft Elastic niet alles op te slaan, je kunt aangeven welke kolommen Elastic moet 'indexeren'. Als ik het goed begrijp kun je bijvoorbeeld je PHP code (of Node, of kanmijhetschelen) eerst aan Elastic laten vragen welke ID's bijvoorbeeld bij de zoekopdracht passen en dan alleen die ID's uit de database halen (wat veel minder rekenkracht kost, want je weet precies wat je moet hebben).
Waar zit ik er naast?
Ik ben er van overtuigd dat hier genoeg mensen rondhangen die er meer van weten dan ik. Dus maak ik hierboven een vreselijke fout? Of heb je een goede aanvulling voor mensen zoals ik, die helemaal bij 0 beginnen? Aanvullingen en aanmerkingen zijn altijd welkom!