Magnolia CMS und Apache Solr Facettensuche – Teil 1 (Business-Perspektive)

Der folgende Beitrag beschreibt eine Kundenanforderung aus einem Projekt und stellt dar, wie diese unter Magnolia 4.4.x gelöst wurde.

Die Anforderung

Eine grosse Anzahl von Content bzw. Teaserseiten soll kategorisiert werden können. Bei den Teaserseiten handelt sich beispielsweise um Ausflugsziele, die innerhalb einer Region (nach Kantonen) in der Schweiz, nach Themenbereichen (z.B. Museum und Abenteuer) und nach Wetterabhängigkeit (Indoor oder Outdoor) kategorisiert werden können.
Der Benutzer soll diese Vielzahl an Content entsprechend diesen Kriterien schnell filtern können. Gleichzeitig soll ihm immer ein direktes Feedback gegeben werden, wieviele Treffer seine Suchanfrage beeinhaltet und die Teaserseiten sollen sich demgemäss dynamisch aktualisieren.
Auf einer entsprechenden Detailseite soll dem Kunden ebenfalls das zugeordnete Kriterium angezeigt werden.
Zusätzlich ist es erforderlich, dass das Kriterium für verschiedene Seiten einem Filter zugeordnet werden kann. Es können somit Kriterien generisch für verschiedene Seitentemplates, beispielsweise Ausflugsziele oder andere Themen (Rezeptseiten) vergeben werden.

Aus diesen Kundenanforderungen ergeben sich weitere wichtige Anforderungen:

  • Es handelt sich bei den Anforderungen um einen Filter. Die Suchergebnisse müssen mit Hilfe einer Facetten-Klassifizierung (Kriterien für Ausflüge oder Rezepte) eingeschränkt werden.
  • Die Kriterien für Ausflüge oder Rezepte sollen übergreifend für eine Filterung verwendet werden können.
  • Es müssen Kriterien beim Filtern ausgeblendet werden, zu denen es keine Treffer mehr gibt.
  • Es soll die Anzahl Treffer zu einer Suchanfrage dynamisch angezeigt werden.
  • Es existiert eine grosse Anzahl an Content (> grösser 200 Teaserseiten) der kontinuierlich gepflegt wird. Hierbei muss berücksichtigt werden, dass bei jedem Aktivieren oder Deaktiveren einer Teaserseite das Filtern des Contents weiterhin funktionieren muss. Somit müssen deaktivierte Teaserseite beim Filtern ignoriert werden.
  • Die Kriterien müssen laufend durch die Autoren ergänzt werden können.
  • Eine soll eine performante Filterung der Inhalte möglich sein.

Die Lösung

Aus Technologiesicht liegt es Nahe für diese Anforderungen Apache Solr als Open Source Project based on Apache Lucene zu verwenden (http://lucene.apache.org/solr/). Für die Magnolia Version 4.4.x muss zusätzlich ein Tomcat mit SolR in die bestehende Magnolia Infrastruktur bereitgestellt werden. Eine detaillierte Beschreibung zur Magnolia Apache Solr Integration findet man hier: (http://wiki.magnolia-cms.com/display/WIKI/Magnolia+Apache+Solr+integration) .

Solr nutzt Lucene und erweiteret es um eine Facettensuche und Filter mit Hilfe einer konfigurativen DB-Abstraktion. Mittels eines Solr Query als GET können u.a. Suchkriterien, Filterkriterien mitgegeben werden und in einem Solr Response als XML werden u.a.  die Gesamtanzahl der Suchergebnisse sowie die Suchergebnisse selbst, sogenannte Facetten-Einfachklassen, zurückgegeben.

Weitere mögliche Lösungen

Weitere Produkte wie Oracle Endec Commercial (high-end) (http://www.endeca.com), Fredhopper Commercial (http://www.fredhopper.com) oder Fact-Finder Commerical (http://www.fact-finder.de) wurden für diesen Fall nicht weiter untersucht, da sie zum Teil andere Schwerpunkte haben, wie das ständige Optimieren der Suchergebnisse durch das Suchverhalten der Nutzer.

Das Ergebnis

Die Kundenanforderungen lassen sich in folgender Graphik vereinfacht darstellen:

Magnolia-Filter-Anforderung

A. Filter => Der Filter ist eine Zusammenstellung von einzelnen Kriteriengruppen.
B. Criteriagroup => Eine Kriteriengruppe ist eine Zusammenstellung von einzelnen Filterkriterien
C. Filtercriteria => Das Filterkriterium ist ein einzelnes Filterelement, welches die Zustände aktiviert/deaktiviert annehmen kann

Die Lösung aus der Sicht des CMS Autors
A.Filter:
Für den Filter muss ein entsprechendes Template angelegt werden.
B. Citeriagroup: Das Anlegen der Kriteriengruppen wird für die Konfiguration des Filters benötigt. Diese werden nicht wie üblich im Reiter „Website“ im AdminCentral, sondern im Reiter „Daten“ unter „Filter-Kriteriengruppen“ angelegt und sind global (für alle Sprachen) gültig.

Screenshot 2014-09-07 23.07.10

C. Filtercriteria: Das Filterkriterium wird innerhalb einer Kriteriengruppe angelegt und stellt sich dem Autor durch folgenden Dialog dar:

Screenshot 2014-09-07 23.11.56

 

Das Ergebnis

Auf famigros.ch kann sich der Benutzer nach Ausflugstipps in seiner Region nach spezifischen Themengebieten informieren.

Screenshot 2014-09-07 23.19.08

Ein Gedanke zu “Magnolia CMS und Apache Solr Facettensuche – Teil 1 (Business-Perspektive)

  1. Pingback: Magnolia CMS und Apache Solr Facettensuche – Teil 2 (Technische Perspektive) – Magnolia

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>