Skip to content

Technisch ontwerp

Patrick van Efferen edited this page Jul 21, 2017 · 2 revisions

De zoekmachine is gebouwd in Drupal 7, met Apache Solr als zoekindexeerder

Drupal 7 wordt gebruikt om alle onderdelen te koppelen. Drupal koppelt met Adlib, en leest alle wijzingen in die [Adlib][(http://www.adlibsoft.com/) aanbied. Adlib data wordt opgeslagen in nodes(Drupal inhoud), deze worden door Apache Solr geindexeerd.

Voordat de data als node wordt opgeslagen vind er een mapping plaats van Adlib naar drupal velden. Sommige velden worden ook samengevoegd, voobeelden zijn de WWWWH velden, hierin komen meerdere Adlib velden samen.

In Drupal wordt het API beheer uitgevoerd, per API key kan een restructie ingesteld worden.

Het zoekgedeelte is een los systeem wat is geimplementeerd in Slim Framework 1.6.0 Via Slim wordt de Catch query omgezet in een query die Solr kan verwerken. In Slim wordt ook de specifieke boosting, toekennen van punten aan zoekresultaten, van het Catch / Mus project toegevoegd aan het verzoek.

image

inleesgedeelte

Dit wordt gedaan door middel van de Feeds module. Voor Adlib is een specifieke module geschreven die hiervoor een plugin levert zodat gegevens uit Adlib geconfigureerd en ingelezen kunnen worden. Alle objecten worden geimporteerd via feeds node importer en opgeslagen in Drupal als nodes. De verschillende velden worden gemapt in de velden 'wie', 'wat', 'waar', 'wanneer' en 'hoe' en een veld 'overige gegevens'. Bepaalde gevoelige informatie wordt om verzekeringstechnische redenen niet geimporteerd. Dat betreft onder meer de waarde van een kunstwerk, de exacte opslagplaats van een kunstwerk.

zoekindexgedeelte

Voor het zoekgedeelte wordt gebruik gemaakt van de Search API module, en de SOLR search API module.

API voor zoekresultaten en zoekvragen

Het zoeken en ophalen van gegevens gaat zoasl genoemd via Slim framework. De zoekquery wordt uit elkaargehaald en opniew inlkaar gezet in een formaat wat Solr kan verwerken, ook worden specifieke filtering toegevoegd, Een vorm van Filtering is het gebruik van de API key. Een API key is opgeslagen in Drupal en wordt bij een request opgehaald en de waarden worden aan het request naar Solr toegevoegd. Zie de Mus API documentatie voor de zoekopties en voorbeelden.

De API geeft XML terug.

Clone this wiki locally