Drupal 9 en Apache Solr, slimme open source technologie voor razendsnelle zoekresultaten
Cover foto: ©Marc Derix CC BY-NC-SA 4.0
door Selcuk Demirci
op 10 augustus 2023
Leestijd: ca. 5 minuten
Betere zoekresultaten creëren
Het kunnen doorzoeken van websites is nog altijd belangrijk. Achter het zoeken gaat een wereld van techniek schuil die ervoor zorgt dat mensen snel en makkelijk de juiste informatie kunnen vinden. Naast relevante zoekresultaten zijn spelling suggesties en gerelateerde content ook belangrijk. Daarmee zorg je ook dat mensen langer op je website blijven en krijg je inzicht in waar mensen naar op zoek zijn. Apache Solr is een razendsnelle open source zoekmachine die al deze verwachtingen waar kan maken. In deze tweeluik gaan we in op Solr en wat je eraan hebt.
Apache Solr (spreek uit: "solar") is een razendsnelle database geoptimaliseerd voor snelle zoekresultaten en veel content. Solr is heel stabiel en werkt perfect samen met Drupal. Ook filterweergaven kunnen heel snel door Solr worden weergegeven, waardoor je gemakkelijk op bijvoorbeeld categorieën of datums kunt filteren. Solr beschikt ook over een algoritme voor autocorrectie: voer je een zoekopdracht in met een woord dat niet klopt, dan krijg je automatische suggesties voor vergelijkbare zoektermen. Ook kun je aanverwante resultaten bieden: zoeken op 'slapen' geeft dus ook resultaten voor 'slaap', 'sliep' en 'verslapen'.
Onlangs schreven we Deel 1 van deze serie die gaat over de voordelen van Solr voor de webredactie. In deze tweede blogpost gaan we in op de technologie achter Apache Solr en hoe je deze kunt installeren op een eigen omgeving. Dit artikel is geschreven door Selcuk Demirci, interim Drupal specialist bij React Online.
Apache Solr
Solr is zeer schaalbaar en kan verschillende Drupal websites apart van elkaar indexeren binnen één Solr installatie. Dit is handig voor multisites is dit handig om te hebben. De out-of-the-box werkende Solr is met een installatie klaar om via de user interface verschillende soorten data te weergeven. Zoekopdrachten kunnen vanaf de grafische interface van Solr gedaan worden om de configuratie af en bij te stellen.
Hoe werkt Solr?
De indexen worden weergeven in Drupal. Hierbij kun je zien hoeveel inhoud er geindexeerd is in Solr. Wanneer je nieuwe inhoud aanmaakt wordt dat automatisch geindexeerd door Solr. Het kan zo zijn dat je inhoud of andere data aanpast in grote hoeveelheden in een keer. Je kunt dan de index legen. De inhoud is dan gewist van de zoekmachine en er worden geen zoekresultaten weergeven. Wanneer de inhoud weer opnieuw geïndexeerd is met de actuele informatie, wordt het weer weergeven in de zoekresultaten. Het komt niet vaak voor dat dit moet gebeuren maar een uitleg kan geen kwaad.
Hoe kan ik zelf Solr installeren?
Er zijn verschillende manieren om Solr draaiend te krijgen op je server, computer of in de cloud. De de officiële download locatie van Solr is hier te vinden: https://solr.apache.org/
Voor Linux \ Mac \ Windows:
- Minimale Java 8 installatie.
- Download de laatste versie in zipformaat.
- Pak het zip bestand uit en navigeer naar het bestand.
De installatie:
- Windows: bin\Solr.cmd
- Mac: bin\Solr start -p 8983
- Linux: bin\Solr start -p 8983
- Docker: docker run -p 8983:8983 -t Solr
- Meer opties: docker run -d -p 8983:8983 --name mijnSolr Solr Solr-precreate mijncore
Je Solr installatie is nu beschikbaar via http :// 0.0.0.0:8983/Solr/ .
Cores
Je zult in het begin cores moeten aanmaken om je website te laten indexeren. Een core is bedoeld om een website te indexeren. Het bevat weer verschillende indexen die je kunt aanmaken. Indexen kunnen verschillende typen van data zijn zoals een index voor nieuwsartikelen en een index voor gebruikers of andere inhoudstypen.
Installatie op Drupal
Met het installeren van de modules Search Api en Search Api Solr kun je Drupal en Solr integreren. Na installatie kun je via /admin/config/search/search-api terecht komen op de Search API configuratie pagina. Hieronder zie je het eindresultaat van wat we uiteindelijk willen bereiken.
Drupal met Solr verbinden
Wanneer je op Add server klikt en de standaarden invult, kunnen Solr en Drupal met elkaar beginnen te praten. Hieronder kun je een voorbeeld zien van de pagina die laat zien dat Drupal en Solr met elkaar verbonden.
Core aanmaken om een website te verbinden
Druk op de Get config.zip en pak het bestand uit op computer om core informatie op te halen. Je kunt een nieuwe core aanmaken via de gui of via de commandline:
Solr create -c corenaam. Verwijder alles in de conf map en plaats daar alle bestanden die je uit config.zip hebt uitgepakt. Ter controle ziet je in Solr de core voorbij komen.
Index aanmaken
Via /admin/config/search/search-api/add-index kun je een nieuwe index toevoegen en de gewenste data bronnen toevoegen aan de index. Voeg de velden toe middels de Velden tab en stel deze in naar wens en behoeften. Wanneer je klaar bent kunnen de nodes, taxonomie, gebruikers en andere data geïndexeerd worden.
De zoekpagina opbouwen
Nu kun je je zoekpagina opbouwen en met verschillende modules het zoeken optimaliseren.
Solr en Drupal
Bij React Online zetten wij Solr in voor diverse opdrachtgevers. Wij helpen ze daarmee door hun klanten en bezoekers een optimale ervaring te bieden waarbij het snel en slim kunnen vinden van relevante informatie centraal staat. Meer over de technologie vind je in deel 2 van deze blogpost. Bel ons gerust of stuur een mailtje als je eens mee wilt kijken hoe dat bij ons in zijn werk gaat. Wil je meer lezen over de onderwerpen uit dit artikel? De volgende links zijn handig om te lezen en op te slaan.
- Facets: https://www.drupal.org/project/facets
- Search Api Autocomplete: https://www.drupal.org/project/search_api_autocomplete
- Search API: https://www.drupal.org/project/search_api
- Search API Solr: https://www.drupal.org/project/search_api_Solr
- Solr Documentatie: https://Solr.apache.org/
- Solr Issue Tracker: http://issues.apache.org/jira/browse/Solr
- Solr IRC: http://webchat.freenode.net/?channels=#Solr
- Solr Community: http://wiki.apache.org/Solr/UsingMailingLists
- Drupal Security: https://www.drupal.org/security
Selcuk Demirci werkt met Drupal sinds 2010. Zijn ervaring met Drupal projecten zijn voornamelijk in de zorg, onderwijs en commercie. Hij is echtgenoot, vader van twee kinderen en hij is sinds begin 2022 actief als bestuurslid voor Stichting Drupal Nederland. In zijn vrije tijd kijkt hij Formule 1 en is hij gek op Tarantino films. Selcuk is interim Drupal specialist bij React Online.
Dan stellen we voor om samen een bakkie te doen!