Case: Hoe Elasticsearch ons superkrachten geeft

Cases
Door Wouter Nijsen op

De prijsvergelijkers van BigSpark zijn ‘powered by’ het in Amsterdam gevestigde Elastic: een krachtige zoektechnologie waarmee we in staat zijn gigantische hoeveelheden data en prijzen te indexeren, doorzoeken en te analyseren. In deze case leggen we je uit hoe Elasticsearch voor ons werkt.

De komende maanden zullen we vaker een inkijkje geven in onze werkwijze, geleerde lessen en ook de tools de we inzetten om te blijven leren en groeien. In deze case staat centraal hoe Elasticsearch ons helpt bij het vervullen van onze missie: consumenten gericht helpen betere (aankoop)keuzes te maken op het gebied van tech.

Positie in Nederland

In de afgelopen drie jaar hebben we een unieke positie ingenomen op het gebied van product- en prijsvergelijking van mobile tech devices en abonnementen in Nederland. Maandelijks geven we ruim 70.000 aankoopadviezen aan onze bezoekers op het gebied van smartphones, tablets, wearables en abonnementen. Doorlopend vergelijken we met behulp van Elasticsearch ruim drie miljoen productprijzen van onder meer:

Unieke features

Gebruikers kunnen op onze sites eenvoudig het volledige productaanbod van Nederland doorzoeken en daarbij met facets filteren op productvoorkeuren waaronder kleur, gigabytes, belminuten, data MB’s en provider, maar ook op condities als levertijd en shopbeoordeling.

iphoned-case-elastic

Waar we vandaan komen

De oorspronkelijke set-up van onze prijsvergelijkers op basis van Mongo DB en Node.JS voldeed niet meer. De databases werden te groot, aggregraties werden te langzaam en de performance onvoorspelbaar. Een nieuwe opzet in PostgreSQL gekoppeld aan Elasticsearch bood een gedegen oplossing. Het werd opeens gemakkelijk om razendsnel de database met prijzen en specificaties te doorzoeken, waarbij rekening wordt gehouden met verschillende groeperingen en facet-voorkeuren. “Als je de vraag op de juiste manier stelt aan Elasticsearch krijg je binnen no-time antwoord”, aldus één van onze development-engineers.

Onder de motorkap

Elasticsearch is geïnstalleerd op een tweetal (redundant uitgevoerde) servers met beide 8GB. De index met offers is circa 3GB groot en biedt een goeie performance in combinatie met een lage load. Ongveer 4 Mbit/sec aan queries komt er uit Elasticsearch, op piekmomenten ligt dit aantal vele malen hoger. We zijn onder de indruk van de wijze waarop Elasticsearch ons in staat stelt om met relatief beperkte resources toch grootse prestaties te leveren.

Toekomstige verbeteringen

Elasticsearch heeft een aantal interessante out-of-the-box mogelijkheden aan boord waarmee we de kracht van onze prijsvergelijkers verder kunnen verbeteren. Voorbeelden hiervan zijn ‘dynamische boosters’ waarmee we bepaalde factoren (zoals bijv. conversie, veranderingen in zoekvolumes of profieleigenschappen van gebruikers) extra kunnen laten meewegen in de sortering van de zoekresultaten.

Daarnaast gaan we gebruikers de mogelijkheid bieden om op een intelligente manier door middel van ‘free text search’ de gehele database met producten te doorzoeken. Elasticsearch kan vervolgens relevante suggesties doen, bijvoorbeeld bij typo’s: “bedoelde je “Galaxy S7” in plaats van “Galaxie S7”.

Ons succes is mede te danken aan de mogelijkheden en de toegankelijkheid van Elasticsearch, “met relatief kleine resources, acceptabele hostingtarieven en een goede Elasticsearch set-up zijn superkrachten vandaag de dag voor iedereen beschikbaar”, aldus Peter Geurts.

onlysim-top3-case-elastic


Dit artikel is gepubliceerd als user-story op het blog van Elastic.