How-to: Mit Elasticsearch Webinhalte in Magnolia CMS indexieren
Suchmaschinen in Magnolia CMS

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.
- Die Configuration App öffnen und einen neuen Index zu /modules/neofonie-module-elasticsearch/config/indexJob hinzufügen

- Den example pages index job kopieren und die Einstellungen anpassen. Dabei den workspace und den docType auswählen.

2.1 In targets können diverse Indexer definiert werden, standardmäßig ist localhost:9200 (Kopie von pages) eingestellt
2.3 In exclude kann eingestellt werden, welche Felder, Bereiche oder Komponenten nicht indexiert werden solle
- Field mappings konfigurieren
Diese Information wird verwendet, um in Elasticsearch das mapping schema zu erzeugen. Angegebene Feldnamen werden standardmäßig mit dem gleichen Namen als Datentyp String im Elasticsearch index abgelegt. Folgenden Optionen sind möglich:

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.
- 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.
- Eine neue Seite aus dem Template Elasticsearch Results hinzufügen.

5.1 Workspace konfigurieren
5.2 Elasticsearch Felder dem Template zuweisen
- Kategorie Facette hinzufügen

- Fertig


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.
Veröffentlicht am 20. Januar 2017, aktualisiert am 12. Oktober 2020

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.
Das könnte Sie auch interessieren
Newsletter
Unser Newsletter „Neo Report“ vermittelt konkretes Praxiswissen, Trends und Know-how für Ihr digitales Business – quartalsweise und kompakt. Jetzt anmelden.