Neo Tech Blog

NEO TECH LBLOG - Praxis-Techblog für IT, Web und Mobile
Magnolia-CMS-Website-Suche

How-to: Mit Elasticsearch Webinhalte in Magnolia CMS indexieren

Keine Kommentare

Die Qualität der Web-Suchfunktion kann darüber entscheiden, wie lange ein User auf der Website verweilt. Insbesondere auf Webseiten mit großen und verschiedenartigen Datenmengen sind Suchmaschinen ein ausschlaggebender Faktor und stellen Content Management Systeme wie beispielsweise Magnolia CMS immer wieder vor Herausforderungen. Website Suchmaschinen existieren bereits seit vielen Jahren und sind elementare Bestandteile jeder Web- oder E-Commerce Site, doch erst eine gut durchdachte Suchlogik mit einem angemessenen Spektrum an Möglichkeiten und der guten Qualität der Suchergebnisse bedient die wachsenden Ansprüche des Users.

Suchmaschinen in Magnolia CMS

Magnolia-CMS-Website-Suche

Bildquelle: magnolia cms, shutterstock

Magnolia CMS unterstützt derzeit zwei Suchmaschinen. Eine davon ist die standardmäßig eingebaute Suche, wobei die Daten aus dem Java Content Repository (JCR) in einem Apache Lucene-basierten Indexer abgelegt werden. Hierbei stößt man jedoch relativ schnell an Grenzen. Die zweite ist das Apache Solr Plugin, welche ebenfalls auf Apache Lucene beruht und deutlich mehr Funktionen und Möglichkeiten bietet. Neben Solr ist Elasticsearch eine der weltweit führenden Enterprise Suchmaschinen. Apache Solr als auch Elasticsearch verfolgen das gemeinsames Ziel das beste Ergebnis für eine Suchanfrage auszuliefern.

 

Auch auf seitens der Kunden der Neofonie erfreut sich die Kombination von Magnolia CMS mit Elasticsearch wachsender Beliebtheit. Das war für ein Entwicklerteam der Neofonie Grund genug, ein Elasticsearch-Magnolia-Modul zu entwickeln. Das technisches Konzept sieht vor, Magnolia Autoren- und Public-Instanzen mit mehreren Elasticsearch Instanzen zu verbinden, um die Speicherung von Inhalten und Mediendateien im Index zu ermöglichen und diesen der Website Suchmaschine und somit dem User wieder zur Verfügung zu stellen.

Indexierung und Inhaltssuche in Magnolia mit Elasticsearch

Wie Inhalte in Magnolia mit Elasticsearch indexiert und gesucht werden können, zeigt die folgende Schritt-für-Schritt Anleitung. Als Beispiel kommen Tourdaten der bekannten Magnolia Reise Demo zum Einsatz.

 

  1. Die Configuration App öffnen und einen neuen Index zu /modules/neofonie-module-elasticsearch/config/indexJob hinzufügen
    indexJobs eleasticsearch
  2. Den example pages index job kopieren und die Einstellungen anpassen. Dabei den workspace und den docType auswählen.

indexJobs_tours_created

2.1 In targets können diverse Indexer definiert werden, standardmäßig ist localhost:9200 (Kopie von pages) eingestellt

2.2 In exclude kann eingestellt werden, welche Felder, Bereiche oder Komponenten nicht indexiert werden solle


3.
Field mappings konfigurieren:
Diese Information wird verwendet, um in Elasticsearch das mapping schema zu erzeugen. Angegebene Feldna
men werden standardmäßig mit dem gleichen Namen als Datentyp String im Elasticsearch index abgelegt. Folgenden Optionen sind möglich:

indexJobs_tours_configured

3.1 type: der gewünschte Datentyp für das Feld

3.2 magnoliaType: Im Fall eines special type wird aktuell uuid unterstützt und ist für die Verwendung mit Magnolia uuids gedacht. Im Fall mehrerer uuids werden diese als ein Array an Elasticsearch übertragen und nicht als verknüpften String.

3.3 elasticsearchName: Feldname in Elasticsearch

3.4 Jedes weitere Feld welches als Mapping-Parameter in Elasticsearch verwendet wird, wie z.B. index mit dem Wert not_analyzed oder include_in_all mit dem Wert false. Weitere Details auf elastic.co.

4. Wenn Sie die Option cron hinzufügen, wird der Index jedes Mal aktualisiert, in diesem Beispiel alle 10 Minuten. Die Syntax ist ähnlich wie bei cron unter Linux und es können auch Angaben in Sekunden gemacht werden.

5. Eine neue Seite aus dem Template Elasticsearch Results hinzufügen.

indexJobs_touts_addsearchpage

5.1 Workspace konfigurieren

5.2. Elasticsearch Felder dem Template zuweisen

6. Kategorie Facette hinzufügen

indexJobs_tours_addfacet

7. Fertig

indexJobs_tours_searchpage_withfacet

Abb. Demo Sucheseite

indexJobs_tours_searchPage_withselectedfacet

Abb. Demo Suchergebnisseite

 

Elasticsearch Modul für Magnolia CMS

Mit dem Elasticsearch Modul für das Content Management System Magnolia CMS können über eine einfache Schnittstelle Textdateien und Daten einfach indexiert und performant in individuellen Suchergebnisslisten ausgespielt werden. Damit gelangt der Website-Nutzer schneller zum gewünschten Suchobjekt.

Zum Elasticsearch Modul

Ender Özgür

Autor: Ender Özgür

Ender Özgür hat Informatik an der TU Berlin studiert. Er verantwortet als Head of Software Factories bei Neofonie die moderne Umsetzung von Entwicklungsprojekten. Neofonie entwickelt individuelle, digitale Lösungen und bietet Beratung, Konzeption, Design, Entwicklung und Betrieb aus einer Hand. Zu den Kunden zählen der Wort & Bild Verlag, Audi, Leica, Rausch und Super RTL.

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.