Wat is Elasticsearch? Welke voor- en nadelen kleven er aan deze open source zoekapplicatie?

Door Thomas van EldijkBijgewerkt op 19 februari 2024 0 Reacties

Het is een open-source zoekapplicatie die op de achtergrond gekoppeld is aan ontzettend veel websites, webshops, klantenportals en andere applicaties die graag gebruik willen maken van de zoekkracht van Elasticsearch.

Elasticsearch is ontwikkeld door het bedrijf Elastic dat naast een open-sourcevariant ook een commerciële variant aanbiedt en die ook voor je host.

Hoe werkt Elasticsearch en wat zijn de voordelen?

Je koppelt je website aan een Elasticsearch zoekapplicatie. Dit gebeurt middels een API (application protocol interface) en hierdoor heeft Elasticsearch realtime inzicht in de data die je binnen je website doorzoekbaar wilt maken. 

Je hebt zelf in de hand welke onderdelen Elasticsearch indexeert (indexeren is het inlezen en organiseren van data). Het slaat deze data op binnen zijn eigen database en kan met zijn eigen zoekalgoritme razendsnel zoekopdrachten uitvoeren. 

Binnen je website kun je vervolgens op verschillende plekken en manieren de Elasticsearch zoekmogelijkheden aanspreken. Bijvoorbeeld met een algemene zoekfunctie of een overzicht van items met filteropties.

Dit soort zoekoverzichten zijn erg populair geworden en hebben baat bij Elasticsearch

Elasticsearch geeft in beide gevallen razendsnel resultaten terug aan het CMS. De website laat de resultaten aan de bezoekers zien zonder dat ze in de gaten hebben dat Elasticsearch de techniek is achter het aanbieden van de juiste zoekresultaten.

Naast snelle resultaten bezit Elasticsearch ook slimme algoritmes en de rekenkracht om foutief gespelde zoekwoorden te verbeteren, kun je van tevoren synoniemenlijsten invoeren en is het mogelijk om in PDF- of Doc-bestanden te zoeken.

Dit maakt Elasticsearch een interessante toevoeging voor met name websites of applicaties die veel data aanbieden aan bezoekers en waarbij bezoekers specifiek op zoek zijn naar bepaalde content. Denk bijvoorbeeld aan een archief van documenten, een klantenportal met bestellingen, orders, retourneringen of websites met vele duizenden publicaties of producten.

Snellere zoekresultaten

Elasticsearch zorgt niet alleen voor goede zoekresultaten, maar biedt ze dus ook nog eens sneller aan. Dit merk je met name bij websites die veel bezoekers hebben, veel content aanbieden of bezoekers dieper in de content wel laten zoeken.

Elasticsearch kun je daarnaast hosten op een andere server waardoor je de webserver, die het vaak al druk genoeg heeft met de website zelf, niet extra belast met complexe zoekopdrachten.

Webshops die een grote database van producten hebben en veel bezoekers trekken, hebben meestal meerdere servers, zogenaamde clusters, waar Elasticsearch op draait. Deze clusters zijn dus puur en alleen bezig met het vinden van de juiste data en het terugkoppelen naar de website.

Betere zoekresultaten

Met betere zoekresultaten moet je denken aan een betere relevantie. Bij de meeste CMS-en is een pagina gelijk. Of de pagina nu 1 of 15 keer het trefwoord bevat wordt niet meegewogen in de relevantie. 

Met Elasticsearch wordt hier wél naar gekeken en kun je bovendien ook nog bepaalde elementen binnen je data meer ‘gewicht’ geven. Hierdoor kun je de zoekresultaten zo aanpassen zodat ze beter aansluiten op jouw doelgroep en content.

Elasticsearch kan daarnaast ook omgaan met zoekwoorden die dicht bij een ander zoekresultaat liggen. Denk bijvoorbeeld aan een andere schrijfwijze of wanneer de bezoeker een typefout maakt.

Een stap verder gaat de optie om synoniemen in te voeren. Dat kan handig zijn wanneer de verschillen tussen de content en zoekwoorden te groot is. Een voorbeeld is het archief van de Militaire Spectator; een online en offline magazine voor officieren dat sinds 1832 gepubliceerd wordt. Binnen de website wordt het uitgaves vanaf 1832 digitaal aangeboden, maar de woorden die men toen gebruikte zoals pantserwagen of rijwiel worden tegenwoordig niet meer gebruikt als zoekwoorden.

Elasticsearch zoekt razendsnel in 80GB aan PDF documenten naar de juiste termen.

Zitten er ook nadelen aan Elasticsearch? 

Bij de websites die wij gekoppeld hebben met Elasticsearch hebben we weinig nadelen gevonden. Je wordt als website-eigenaar wel afhankelijk van een extra applicatie, want je kunt niet meer terugvallen op de gewone zoekfunctionaliteiten wanneer je eenmaal Elasticsearch hebt geïmplementeerd. Je moet dan teveel inleveren op snelheid, kwaliteit en functionaliteit.

Wat kost Elasticsearch als je het zelf installeert, configureert en host?

Elasticsearch is gratis. Je kunt het gratis downloaden en op elk Linuxsysteem installeren. Daar heb je wel de nodige technische kennis voor nodig. Daarna moet je een module of plug-in installeren en configureren binnen je CMS, want die brengt de koppeling tot stand met Elasticsearch. Als laatste moet je de zoekopties inbouwen of aanpassen zodat ze werken met Elasticsearch. Dit laatste is de meest tijdrovende stap omdat elke zoek- en filteroptie er anders uit ziet.


 

Een relatief simpele zoekoptie die zoekt binnen gemeenten, plaatsen naar de juiste vestiging in jouw buurt.

Vrij complexe filter opties die in een grote database met producten zoekt naar de juiste match.

Het installeren, configureren en koppelen van Elasticsearch aan een website is vrij generiek. Maar de zoekopties en -filters instellen verschillen enorm van elkaar zoals de bovenstaande voorbeelden al direct visueel duidelijk maken. We raden aan om uit te gaan van een budget tussen de € 2500,- en € 7500,- ex. btw. Daarbij gaan we uit van een scenario waar we werken met Drupal.

Drupal is een enterpriselevel open-source CMS dat met name gebruikt wordt voor websites die complexere content aanbieden waarbij de Elasticsearchopties en -filters een ideale match vormen. Daardoor is er ook al veel ontwikkeld aan software en is de koppeling relatief simpel op te zetten omdat er gebruik gemaakt kan worden van bestaande code. Het werk zit dan met name ook in het configureren van de zoekopties en filters.

Bij customapplicaties moet deze techniek zelf ontwikkeld worden en bij CMS-en die minder vaak ingezet worden voor complexe websites, zoals Wordpress of Joomla, zien we dat de bestaande koppelingen vaak te beperkt zijn om gebruik te kunnen maken van alle mogelijkheden die Elasticsearch biedt.

En hoe zit het met Elastic.co, de commerciële organisatie achter Elasticsearch?

Elasticsearch is gebaseerd op Apache Solr, een zoekapplicatie die nog steeds erg veel gebruikt wordt, maar die minder populair is als Elasticsearch. 

Binnen de open-sourcewereld is commercialiteit altijd een beetje bedenkelijk, maar in het geval van Elastic werkt het goed. Elastic heeft er baat bij dat zoveel mogelijk mensen werken met hun Elasticsearch. Bedrijven die op een bepaald moment populair worden en vastlopen met hun gratis Elasticsearch, wat maar een klein deel van het totaal aantal gebruikers vertegenwoordigd, kunnen zich wenden tot de Elasticcloud waarin ze Elasticdiensten kunnen afnemen tegen betaling. Dit biedt een aantal voordelen; zo wordt vanaf dat moment de Elasticsearchomgeving beheerd door Elastic zelf en kan Elastic makkelijk schalen in resources, mocht dat nodig blijken. Wel tegen een vergoeding uiteraard. Deze manier van een applicatie online aanbieden wordt ook wel SaaS genoemd: Software as a Service. Je neemt niet een server af waarop je de applicatie moet installeren, zoals bij traditionele hosting, maar neemt het gebruik van de applicatie af. De partij hierachter, Elastic in dit geval, is verantwoordelijk voor het beheer, updates, onderhoud en de veiligheid.  

Elastic heeft met dit model baat bij een goed werkende open-source Elasticsearch en investeert in nieuwe functies en vooral makkelijker integraties. Die doen ze zowel met applicaties zoals Drupal, alsook met hostingproviders. Dit is de populariteit uiteraard ten goede gekomen.


 De verschillen met Apache Solr

Apache Solr is de voorganger, of beter gezegd: de oorsprong, van Elasticsearch. Er zijn nog steeds veel websites die hiermee werken en we krijgen dus vaak de vraag wat de verschillen nu precies zijn. Voor de meeste websites zijn die er bijna niet, beide applicaties bieden vrijwel dezelfde mogelijkheden en snelheden. Het verschil zit met name in de ondersteuning bij derden, zoals hostingproviders en modulebouwers.

Conclusie

Wanneer je veel data of content aanbiedt en bezoeker op de beste manier wilt laten zoeken, dan is de koppeling met een aparte zoekapplicatie zoals Apache Solr of Elasticsearch een must. Als open-sourcepionier voelde Elasticsearch in het begin wat vreemd aan (commercie en open-source gaan niet altijd even goed samen), maar deze combinatie die Elastic biedt werkt gewoon.

De koppeling met een enterpriselevel CMS zoals Drupal is vrij snel gelegd, maar dan begint het finetunen en uitbreiden. Daar kun je in verdwalen en oneindig mee door gaan. Het is daarom handig om vast te stellen wat je primaire doelen zijn en je daar aan vast te houden. 

Meer inzichten over Drupal