Zur Übersicht

Zu Besuch beim Shootingstar unter den Suchmaschinen

Sabine Bär
Sabine Bär Aktualisiert am 17. Aug. 2020
Zu Besuch beim Shootingstar unter den Suchmaschinen

Die Aufmerksamkeitsspanne eines Online-Users ist mittlerweile unter Goldfisch-Niveau. Mit zunehmender Ungeduld der Nutzer wächst die Bedeutung einer cleveren Suchfunktion. Darum setzen wir auf Elasticsearch.

>> Eine Einführung zum Thema finden Sie in meinem Blogbeitrag "Suchen und Finden im Web".

Einen Suchindex in Elasticsearch aufzubauen und erfolgreich zu durchsuchen ist keine Kunst. Das Ganze zu optimieren und nach Kundenwünschen anzupassen kann aber zur Herausforderung werden. Um unser Wissen weiter zu vertiefen haben Johannes Wachter und ich die zweitägige Schulung "Core Elasticsearch: Developer" in München besucht. Und das sind unsere vier wichtigsten "Lessons learned".

1. Erst planen, dann bauen

Elasticsearch in seinen Grundzügen zu verwenden ist – wie bereits erwähnt – einfach: Man überlegt sich welche Daten interessant für eine Suche sein könnten und baut einen Index auf. Im Nachhinein wird dann versucht die Suchabfrage – den so genannten Query – so anzupassen, dass die erwarteten Suchergebnisse angezeigt werden. Auch das führt über kurz oder lang zum Erfolg. Während der Schulung ist mir aber bewusst geworden, dass durch eine gute Planung noch einiges herausgeholt werden kann. Schon vor dem ersten Indizieren sollte man sich mehr Gedanken darüber machen, was man eigentlich erreichen will – und sich folgende Fragen stellen:

  • Wie sehen meine Daten aus und welche Eigenschaften haben sie?
  • Welche Suchergebnisse erwarte ich mir?
  • Gibt es viele Sonderzeichen, die speziell behandelt werden sollen?
  • Werden eher wenige exakte Treffer erwartet oder soll man möglichst tolerant gegenüber Schreibfehlern sein oder sogar Synonyme berücksichtigen?

Der Suchindex soll von Anfang an so aufgebaut werden, dass die gegebenen Anforderungen an die Suche möglichst einfach und performant erfüllt werden können. Die Zeit, die hier zu Beginn investiert wird, holt man bis zum Schluss auf jeden Fall wieder auf.

2. Mehr Fokus auf Analyzern

Diese Planung beinhaltet auch eine genaue Selektion von Analyzern. Was genau Analyzer sind, lesen Sie im zweiten Teil meines Blogbeitrags zu Elasticsearch zu lesen. Obwohl wir schon viele Analyzer verwendet und auch eigene definiert haben, hat mir die Schulung noch einmal bewusst gemacht, wie mächtig diese wirklich sind und welche Möglichkeiten sie bieten.

Besonders interessant waren für mich dabei zwei Token Filter, die für eine gegenüber Rechtschreibfehlern tolerantere Suche verwendet werden können:

  • ASCII Folding Token Filter: Dieser wandelt alle Zeichen, die nicht in den ersten 127 ASCII-Zeichen vorkommen, in das jeweilige Äquivalent innerhalb dieser Zeichen um – beispielsweise wird ß zu ss und é zu e. Dadurch werden mehrere Schreibweisen toleriert.
  • Phonetic Token Filter: Dieser Filter geht noch ein Stück weiter und sucht auch nach Inhalten, die ähnlich klingen wie das Suchwort. Das ist zwar nicht Teil des Core von Elasticsearch, kann aber über Plugins einfach installiert werden.

3. Query-Vielfalt

Schon während der Auswahl der Analyzer sollte man sich immer wieder damit beschäftigen, welche Queries man später verwenden kann, um die Daten zu durchsuchen. Neben den klassischen Queries wie dem Match oder dem Term Query – wurde in der Schulung viel über eine sinnvolle Kombination von mehreren Queries mit Hilfe des Bool Querys gesprochen. Dabei hat es sehr geholfen, sich die verschiedenen Typen und ihre Anwendung im Detail anzuschauen und auch einmal mit etwas exotischeren Queries zu arbeiten.

Sehr interessant war dabei der „More like this“-Query, der ähnliche Einträge aus dem Suchindex findet. Das könnte etwa für die Darstellung von ähnlichen Produkten in einem Webshop oder ähnlichen Beiträgen in einem Blog genutzt werden.

4. Ideale Rahmenbedingungen

Die Schulung fand in einem Konferenzraum im Holiday Inn in München statt und wurde von Luca Wintergerst (Consultant, Elastic) und Alexander Reelsen (Software Engineers, Elastic) geleitet. Sie haben die Schulung sehr kompetent geleitet. Das gleich zwei Vortragende anwesend waren, war ein großer Vorteil und hat Abwechslung und Lebendigkeit in die Schulung gebracht. Auch die Schulungsunterlagen und Übungen waren sehr gut strukturiert und vorbereitet. Und nicht zuletzt haben natürlich auch guter Kaffee, Snacks und leckeres Essen für Motivation gesorgt.

Fazit

Die Schulung war super organisiert und die Inhalte sind gut und verständlich aufbereitet. Es ist genug Raum für Übungen und Fragen, der praktische Nutzen ist dadurch sehr hoch. Neben einem tieferen Verständnis habe ich auch noch viel Motivation mitgenommen. Nach dem Ende der Schulung will man sofort loslegen und alle Suchprobleme dieser Welt lösen. Darum freue ich mich auch schon auf viele weitere Projekte mit Elasticsearch.

Sabine Bär
Sabine Bär
Director of Development
Sabine ist Web Developerin bei MASSIVE ART. Wäldar ka nüd jedar sin, Web-Entwicklerin auch nicht. Sabine ist beides aus Leidenschaft. Die Frau mit Hang zu komplexen Coding-Projekten hat ihre Prozesse, Zahlen und die Dev-Jungs voll im Griff.