Magnolia CMS und Apache Solr Facettensuche – Teil 2 (Technische Perspektive)

Ausgangslage

Wie in Teil 1 bereits beschrieben, ist es manchmal erforderlich, dass eine gewisse Menge an Informationsitems angezeigt werden muss. Um dem Benutzer hier die Möglichkeit zu geben, die für ihn relevanten Informationen zu filtern sollen mehrere unterschiedliche Filter aus verschiedenen Kategorien gewählt werden können. Die Filter sollen sich beliebig kombinieren lassen, so dass am Ende nur die für den Benutzer wirklich relevanten Informationen angezeigt werden. (In diesem Fall zu sehen bei: www.famigros.ch)

Den Teasern können beliebige Fakten aus beliebigen Kategorien zugewiesen werden. Ein Beispiel wäre „location/Ostschweiz“.

Grundidee

Für die Lösung des Problems wird die Facettensuche des Apache Solr Servers verwendet. Um den Solr Server mit Daten zu versorgen benutzen wir Magnolias Aktivierungs Workflow und pushen beim Aktivieren die entsprechenden Daten. Die Abfrage der Ergebnissmenge erfolgt aus dem Frontend. Der Ablauf für das Bereitstellen der Solr-Dokumente ist also dieser:

  1. Es wird ein neues Informationsitem (z.B. Teaser) in Magnolia erfasst.
  2. Der Benutzer kann diesem aus einem Katalog Ausprägungen verschiedener Kategorien zuweisen
  3. Der Benutzer aktiviert den Content
  4. Während der Aktivierung wird das Informationsitem an den SOLR gepusht

Im Frontend ist der Ablauf dieser:

  1. Besucher gehen auf die Seite mit den Items
  2. Besucher wählen einen Filter
  3. Es gibt einen Request auf den Solr, der die gefilterten Ergebnisse in Form eines JSON zurückgibt
  4. Das Frontend stellt die gefilterten Items dar

(mehr …)