TYPO3 Suchlösungen

TYPO3 Suchlösungen

Schon 2019 ging man davon aus, dass weltweit 33.000 Exabyte, umgerechnet 33.000 Millionen Terrabyte, Daten gespeichert werden. Um sich in diesen Datenmengen zurecht zu finden, braucht man Suchmaschinen wie sie Google oder Bing anbieten.

Doch braucht man nicht nur eine seitenübergreifende Suche, sondern auch eine seiteninterne Lösung, vor allem, wenn man bestimmte KPI erreichen will (wie zum Beispiel die Session-Zeit verlängern).

Für TYPO3, das CMS unserer Wahl, gibt es mehrere seiteninterne Suchlösungen, die je nach Komplexität des Anwendungsfall empfehlenswert sind. Diese sollen in diesem Blogeintrag kurz vorgestellt werden.

Indexed Search

Diese Suchlösung wird von dem TYPO3 Team selbst entwickelt. Es teilt sich dabei in zwei Teile auf: das Indexing und die Suche.

Alle Seiten, die gecached werden können, können auch für die Suche indexiert werden. Die Seiten sind jedoch erst in der Suche verfügbar, wenn sie mindestens einmal aufgerufen wurden. Diesen Nachteil der Suche kann man durch Einsatz der Crawler-Extension vermeiden.

Die Suche bietet folgende Features:

  • Möglichkeit nach ganzen Sätzen, Wörtern, Teilwörtern oder nach Wortklang zu suchen
  • logisches AND und OR benutzbar
  • Suche auf spezielle Dateitypen beschränkbar
  • sprachsensitiv auf Grundlage des TYPO3 Frontends

Die Suche per Indexed Search bietet viele Konfigurationsmöglichkeiten, um die Ergebnisse genau zu filtern, dabei wird aber die Suchgeschwindigkeit vernachlässigt.

Aus diesen Gründen empfiehlt es sich, diese Suchlösung eher bei kleinen Seiten mit geringem Content zu verwenden.

Ke_Search

Eine weitere Suchlösung ist die ke_search. Diese liefert mehrere Indexer, auch für die beliebte News-Extension und Dateitypen wie pdf und doc.

Die Suche bietet die Möglichkeit, verschiedene Filter anzulegen, damit diese von den Website-Usern benutzt werden können. Weitere Optionen, wie beispielsweise die Mindestlänge eines Suchbegriffes, können zudem angepasst werden.

Die Suche benötigt MySQL oder MariaDB als Datenbanksystem. Das dürfte aber in den meisten Fällen gegeben sein und stellt daher keinen großen Nachteil dar. 

Solr

Diese Suchlösung benötigt einen externen Apache Solr Server.

Die Suchlösung wird mit einem Page-Indexer installiert und hat eine Typoscript-Beispielkonfiguration für einen News-Indexer. An dieser kann man sich auch für weitere Extensions orientieren.

Solr bietet verschiedene Features, einige davon sind:

  • Multi-Language Support
  • Highlighting des Suchbegriffes
  • Synonym- und Stopwörter

Searchable

Dies ist unsere hauseigene Suchlösung, auf der wir bei Pagemachine bauen. Sie benötigt einen externen Elasticsearch Node und wird mit einem Page-, File- und TCA-Indexer (für die News-Extension) installiert. Sie unterstützt die zuvor genannten Suchfeatures der anderen Lösungen. Der Code ist Open Source und kann auf GitHub eingesehen werden (https://github.com/pagemachine/searchable) .

Die Searchable wird bald durch unsere Entwickler eine neue Version bekommen und ist dann mit Elasticsearch 7 kompatibel. Was sich dadurch verändert hat, will ich nun kurz vorstellen.

Durch die neue Searchable wird auf Veränderungen der Elasticsearch reagiert. Während es zuvor möglich war, die verschiedenen Indexer in einem Index zu speichern und es somit pro Sprache einen Index gab, wurde dies jetzt umgestellt:

So gibt es jetzt pro Sprache und Indexer einen Index. Dies macht die Konfiguration etwas länger, ermöglicht es aber auch, diese genauer vorzunehmen. Werden zum Beispiel in der französischsprachigen Version einer Website keine News Artikel verwendet, so muss kein Index dafür angelegt werden. Dies verbessert auch die Komprimierung der Daten in Elasticsearch und führt somit zu weniger Festplattenverbrauch.

Weiter kann diese Form der Indexanordnung dafür sorgen, dass die Suche im Frontend leichter eingestellt werden kann und diese somit performanter ist, da nur noch z.B. News-Artikel durchsucht werden.

Alte Index Anordnung

Neue Index Anordnung

Leistung

Im Rahmen einer von Pagemachine betreuten Bachelorarbeit habe ich die verschiedenen Suchlösungen mit einem bestimmten Testszenario verglichen und will hier kurz die Ergebnisse zusammenfassen.

Die Indexierungszeit ist bei der Searchable und ke_search am schnellsten.

Die Suchzeit ist bei allen Lösungen außer der indexed_search, da man dort nicht messen kann, passabel. So hat die ke_search ca. 55-103 Millisekunden für die Ergebnissuche gebraucht, während die Searchable bei 4,4-23,8 Millisekunden und solr bei 1-5,2 Millisekunden lag.

Die Testung wurde in einer Entwicklungsumgebung durchgeführt.

Fazit

Für kleinere Seiten mit geringem Suchvolumen empfiehlt sich eine der lokalen Suchlösungen (indexed_search oder ke_search). Diese verursacht nach der Installation geringe bis keine Kosten.

Sobald aber das Suchvolumen oder die Komplexität der Inhalte hinter den Suchergebnissen steigt, empfiehlt es sich solr oder Searchable als Suchlösung zu verwenden. Erstens wird dadurch die Suchrechenleistung vom TYPO3-Server ausgelagert und die Berechnung der Ergebnisse findet auf dem jeweilen Suchserver statt. Zweitens bieten beide Suchlösungen die Möglichkeit, für proprietäre Erweiterungen neue Indexer hinzuzufügen.

Sollten sie Fragen haben so beantworten wir diese gerne und beraten Sie auch bei Ihrer Suche nach der richtigen Suchlösung.

Begriffe

Index: Datenstruktur, welche Suche und Sortieren nach bestimmten Feldern beschleunigt
Extension: Software, um die Funktionalität von TYPO3 zu erweitern
Indexer: Gibt die jeweilige Struktur und Analyse von verschiedenen Datentypen für die Suchlösung an (News- und Pageindexer)

geschrieben von Nils Friedrich, Pagemachine AG

Wir arbeiten seit 20 Jahren mit CMS TYPO3 und sind daher bereit, Sie professionell bei der Entwicklung oder Aktualisierung Ihrer Website zu unterstützen. Erfahren Sie mehr über unsere Dienstleistungen: https://www.pagemachine.de/typo3-websites

Kontaktieren Sie gerne uns unter info@pagemachine.de

Schreibe einen Kommentar

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