Wat is Elasticsearch en hoe gebruik ik het?


 

Wat is Elasticsearch?

“Elasticsearch is een opensource oplossing die, kort gezegd, vooral gebruikt wordt om snel grote hoeveelheden data te kunnen doorzoeken en analyseren.”

In een appartement in London, zoekend naar een baan, werd de eerste versie geschreven door de Israëlische Shay Banon. Bedoeld voor zijn vrouw, wie kok wilde worden en daarom iets nodig had om haar toenemende kennis over eten te kunnen bijhouden en doorzoeken. Het project groeide. Om het te ondersteunen richtte Banon in 2012 een bedrijf op met onder andere de Nederlandse Steven Schuurman. Drie jaar later kwam het bedrijf bekend te staan als Elastic BV.

En even voor de programmeurs onder ons: Elasticsearch, geschreven in JAVA, biedt een vrij te kiezen documentstructuur gebaseerd op het gegevensformaat JSON en een HTTP webinterface aan. Het kan zelfs omgaan met onzekere data. Tot slot wordt het aangeboden onder de Apache Licentie.

Het systeem is een groot succes. De populariteit van het product steeg. DB-engines, een website die de populariteit van databases bijhoudt, benoemd Elasticsearch tot de meest gebruikte zoekmachine ter wereld. Enkele welbekende organisaties als Uber en Netflix maken gebruik van het systeem. Zo’n succes zelfs dat sinds vrijdag 5 oktober 2018 het aandeel Elastic verhandeld wordt op de New York Stock Exchange.

 

 

Hoe is Elasticsearch te gebruiken?

Elasticsearch is enorm veelzijdig. Toch is het zo gemaakt dat het voor ons ontwikkelaars snel is op te zetten en aan te passen naar de wensen van een project. Elasticsearch draait in een eigen omgeving op de server, hierdoor bouwt het daar zijn eigen indexen op (databases). In Shopwarewordt de data opgeslagen in de MySQL database (lees meer over Shopware). Deze data wordt door Elasticsearch geïndexeerd. Dit houdt in dat de zoekmachine bestaande webpagina’s opnemen in hun eigen database, zodat ze deze enorm snel aan bezoekers kunnen laten zien. Dit maakt het dus voor Elasticsearch mogelijk om data razendsnel op te kunnen vragen en te tonen. Tot slot is het via een RESTful_API mogelijk om met Elasticsearch te communiceren.

 

 

Waarom Elasticsearch gebruiken?

Elasticsearch is erg snel en krachtig, echter wordt het niet voor ieder project gebruikt waar een zoekfunctie in zit. Vele websites voldoen namelijk met een eenvoudige zoekfunctionaliteit. Maar wanneer er enorm veel data aan de pas komt, komt Elastisch om de hoek kijken. Een goed voorbeeld hiervan in Shopware is bijvoorbeeld bij een webshop met een enorme hoeveelheid aan producten waar ook nog eens een boel productgegevens bij toebehoren. Maar ook wanneer er prioriteit of een filter op eigenschappen in de zoekresultaten toegekend moet kunnen worden.

De meest gebruikte zoekmachine ter wereld wordt je natuurlijk niet zomaar. Daarom enkele belangrijke functionaliteiten en mogelijkheden van Elasticsearch op een rij:

  • Het is ten eerste onwijs snel en krachtig.
  • Het is open source, dit betekent dat programmeurs zelf toevoegingen of verbeteringen kunnen aanbrengen. Dit maakt het bijvoorbeeld eenvoudig voor het gebruik van verschillende add-ons.
  • De performance kan makkelijk worden opgeschroefd.
  • Door de enorme snelheid en de manier waarop het omgaat met complexe datarelaties en structuren, is het systeem heel goed in het analyseren van gegevens om deze vervolgens om te zetten in interessante informatie.
  • Elasticsearch geeft een score mee. Dit maakt het filteren op meta-gegevens makkelijk opvraagbaar en eenvoudig in gebruik.
  • ‘Highlighting’ biedt de functie om inhoud van bepaalde velden ‘gehighlight’ terug te geven middels een html tag. Welke vervolgens opgenomen kan worden in je stylesheet om de highlight een bepaalde kleur te geven. Dit is bijvoorbeeld handig om in de titels van zoekresultaten de zoekargumenten te highlighten.
  • De omgeving werkt ‘near realtime’ en is enorm schaalbaar.

 

 

Waarom gebruiken wij Elasticsearch?

Nu dat je Elasticsearch een beetje beter begrijpt, zal je vast begrijpen waarom wij als Shopware Partner hier graag mee werken. Bij het ontwikkelen van onze webshops willen wij ontzettend veel data laten zien. Denk bijvoorbeeld aan categoriepagina’s, hier laten we vele gegevens zien als maten, eigenschappen, etc. En dit moet snel. Daarvoor gebruiken wij Elasticsearch. Om dat razendsnel te kunnen laten zien. Elasticsearch indexeert alle data ineens en dat maakt het ons mogelijk alle data in één keer op te vragen en dus dit snel te kunnen laten tonen.

 

In onze laatste case is een Shopware webshop ontwikkeld voor Petrol Industries. Een enorm Nederlands fasionmerk en een project waar wij trots op zijn. Ook hiervoor is Elasticsearch geïmplementeerd. Klik hier om eens een kijkje te nemen in onze Petrol Industries case!

 

 

Houdt onze blogsite in de gaten voor alle laatste updates, nieuws, ontwikkelingen, tips&tricks en nog vele meer! Volg ons ook op Facebook en LinkedIn om volledig op de hoogte te blijven!

Recent Posts