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:
- Android devices en iOS devices, zowel nieuw als een refurbished iPhone
- Smartphones met abonnement en verlengingsdeals (vb. iPhone 6S met abonnement)
- Sim only-aanbiedingen
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.
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.
Dit artikel is gepubliceerd als user-story op het blog van Elastic.