Plug-in: Wie konfiguriere ich die Shop-Suche mit Smartstore MegaSearch?
Samstag, 26. Dezember 2020

Plug-in: Wie konfiguriere ich die Shop-Suche mit Smartstore MegaSearch?

Zur Einführung empfehlen wir zunächst den Beitrag Plug-in: Smartstore MegaSearch „Finden statt suchen“ zu lesen:

https://smartstore.com/de/smartstore-megasearch-finden-statt-suchen

Das MegaSearch Plug-in ersetzt die einfache Standardsuche in Smartstore und bietet die vielfältigen Möglichkeiten einer auf Lucene.Net basierenden Volltextsuche. Im Gegensatz zur Standardsuche arbeitet MegaSearch dabei nicht direkt mit der Datenbank, sondern schaltet einen auf Dateien basierenden Suchindex mit dem Ziel dazwischen, die Suche möglichst schnell und flexibel zu machen. Derzeit beinhaltet MegaSearch einen Index für Katalog- und einen für Forumdaten. Das MegaSearch Plus Plug-in erweitert MegaSearch um lokalisierte\sprachabhängige Daten, MultiStore- und Zugriffsbeschränkungen, und Produkt- und Spezifikationsattribute. In diesem Beitrag werden die vielfältigen und mitunter komplexen Einstellungsmöglichkeiten der Suche mittels MegaSearch erläutert.

Ein Hinweis zu den verwendeten Begriffen. Lucene.Net ist eine .NET-Framework Portierung der originalen Apache Lucene Suchmaschinenbibliothek. Produktattribute (auch bekannt als Produktvarianten) sind durch den Käufer auswählbare Eigenschaften eines Produktes, wie z.B. Größe und Farbe. Spezifikationsattribute hingegen sind nicht auswählbar und werden auf Produktdetailseiten rein textuell dargestellt. Nach beide Attributtypen kann im Rahmen der Suche gefiltert werden.

Ein Wort vorab zum Thema Geschwindigkeit der Suche. Die hängt von mehreren Faktoren ab, neben besagter Konfiguration auch von der Datenmenge und vor allem von der Datenqualität. Werden unüberlegt große Mengen unbereinigter Daten in einen Shop gepumpt, so kann das die Performance der Suche erheblich beeinträchtigen. Wir haben bei Tests tendenziell gute Werte beim Durchsuchen von knapp drei Millionen Produkten erhalten, aber weniger gute Werte bei der Facettierung von über 40.000 Spezifikationsattributen oder Warengruppen, welcher Sinn hinter letzterem auch immer stecken mag. Mit anderen Worten, eine zunehmende Menge an zu facettierender Daten beeinträchtigt die Suchperformance stärker als eine große Mengen an Produkt- bzw. Katalogdaten die eigentliche Volltextsuche. Der Begriff Geschwindigkeit ist hier relativ zu verstehen. Bei einer üblichen Datenmenge ist die Suche sehr schnell und bei Änderung einer Sucheinstellung ein Geschwindigkeitsunterschied kaum festzustellen, da dieser im Millisekunden Bereich liegt.

Die sich auf die Suche auswirkenden Einstellungen gliedern sich im Wesentlichen in drei Bereiche: den allgemeinen Sucheinstellungen, der MegaSearch Konfiguration und - in Einzelfällen - der Objektbearbeitung wie z.B. der von Spezifikationsattributen.

Allgemeine Sucheinstellungen

Betreffen sowohl die Standardsuche als auch MegaSearch. Zu finden unter Konfiguration > Einstellungen > Suche.

Der Suchmodus bestimmt, wann eine Übereinstimmung mit dem Suchbegriff besteht und demensprechend ein Suchtreffer erzielt wird. Die Einstellung wirkt sich sowohl auf die Menge der Treffer, als auch auf die Geschwindigkeit der Suche aus. "Ist gleich" (exakte Übereinstimmung) ist dabei bei vergleichsweise wenigen Treffern am schnellsten, "Beginnt mit" bei deutlich mehr Treffern etwas langsamer und "Beinhaltet" mit sehr vielen Treffern am langsamsten.

Über Suchfelder werden die zu durchsuchenden Datenfelder festgelegt. Je weniger zu durchsuchende Felder, desto schneller die Suche, wobei der Geschwindigkeitszuwachs i.d.R. vergleichsweise gering ist. Der Produktname (bzw. der Thementitel bei Foren) ist nicht auswählbar, da er immer durchsucht wird. Dem Feld für Produkt-Tags kommt hier eine besondere Bedeutung zu: wenn ein Produkt über einen bestimmten Begriff gefunden werden soll, dieser aber in keinem der zur Verfügung stehenden Felder vorkommt, dann kann für ihn ein Produkt-Tag erstellt und dem Produkt zugeordnet werden. Sollten Sie in der Suchprotokollierung (Plug-in Smartstore Suchprotokollierung) immer wieder auf einen gesuchten Begriff stoßen, der keine oder zu wenige Treffer erzielte, dann lohnt es sich darüber nachzudenken dem betreffenden Produkt ein entsprechendes Produkt-Tag zuzuordnen.

Die Standardsortierreihenfolge legt die vorgegebene Sortierung der Suchtreffer fest. "Beste Ergebnisse" reiht Treffer mit hoher vor jenen mit geringerer Relevanz ein. Bei der Relevanz bzw. dem Scoring-Wert eines Suchtreffers handelt es sich nicht um eine prozentuale Übereinstimmung mit dem Suchbegriff. Eine solche existiert nicht. Daher ist es auch nicht möglich Suchtreffer mit z.B. eine Übereinstimmung von 70 oder mehr Prozent zu filtern.

"Produkt bei SKU, MPN oder GTIN direkt öffnen" prüft vor der Suche über die Datenbank, ob der Suchbegriff einem der genannten Produktspezifizierer entspricht. Im Falle einer Übereinstimmung wird die betreffende Produktseite direkt geöffnet, also keine Suchtrefferliste angezeigt.

Die Einstellungen zur Instant-Suche (Search-As-You-Type) überspringen wir mal (da selbsterklärend) und kommen direkt zur Ergebnisfilterung. MegaSearch bietet eine sog. Drill-Down Facettierung, bei der das Suchergebnis immer weiter eingeschränkt wird, je mehr Filter angewendet werden, einschließlich Anzeige der zu erwartenden Trefferanzahl bei Anwendung des jeweiligen Filters. Sehr viele zu facettierende Warengruppen, Produkt- oder Spezifikationsattribute können die Geschwindigkeit der Facettierung und damit der Suche beeinträchtigen, weil sämtliche Kombinationen dieser Werte gebildet und auf Suchtreffer geprüft werden müssen. Eine Verringerung des Wertes für "Maximale Anzahl an Filtern" (Standard ist 20) kann diesen Vorgang beschleunigen, wenn denn diese Obergrenze schneller erreicht wird. Angenommen es existieren zehntausende von Warengruppen ohne oder mit nur sehr wenigen Produkten darin. Dann kann es vorkommen, dass die Facettierung abhängig vom aktuellen Suchbegriff tausende von leeren Warengruppen prüfen muss, bevor sie auf die erste mit einem relevanten Produkt stößt, und das auf allen Seiten auf denen Facetten angeboten werden, also neben der Suche auch auf allen Warengruppen- und Herstellerseiten. Dieser Effekt wird noch verstärkt, wenn die Katalogeinstellung "Produkte von Unterkategorien einschließen" aktiviert ist.

Über "Inaktiv" können Facetten auch gänzlich ausgeblendet werden, wobei jene für Warengruppen immer angezeigt werden. Zudem besteht über "Nicht verfügbare Produkte einschließen" die Möglichkeit selbige standardmäßig mit anzeigen zu lassen.

MegaSearch Konfiguration

Zu finden unter Plugins > MegaSearch.

Das Gitter zeigt Informationen zum Katalog- und Forum Index. Rechts befindet sich ein Menü mit Kommandos wie "Reindexieren" (Index neu erstellen) und "Aktualisieren" (Daten geänderter Produkte in den Index übertragen). Eine geplante Aufgabe stellt sicher, das der jeweilige Index in einem bestimmten Zeitintervall aktualisiert wird. Dieses Intervall sollte bei großen Datenmengen nicht zu klein gewählt werden, da neben Produktdaten auch weitere Metadaten von Warengruppen, Produkt- und Spezifikationsattributen etc. in den Index übertragen werden müssen. "Zeige Einstellungen" blendet Index spezifische Einstellungen ein, wobei manche Änderungen erst nach einer Reindexierung wirksam werden.

Filter für Produkt- und Spezifikationsattribute können an dieser Stelle aktiviert werden (MegaSearch Plus vorausgesetzt), wodurch deren Daten in den Suchindex aufgenommen und die entsprechenden Filter im Frontend angezeigt werden. Die Option "Filtern zulassen auf Produktebene ignorieren" ist ein Sonderfall bei Spezifikationsattributen. Ob im Frontend nach einem bestimmten Spezifikationsattribut gefiltert werden kann, kann sowohl auf Attribut- als auch auf Produktebene festgelegt werden. Über besagte Option wird MegaSearch angewiesen "Filtern zulassen" auf Produktebene grundsätzlich zu ignorieren, was die Facettierung von sehr vielen Spezifikationsattributen beschleunigen kann. Wir empfehlen "Filtern zulassen" nach Möglichkeit nur auf Attribut- und nicht auf Produktebene zu verwenden, weil es das Arbeiten mit (vielen) Spezifikationsattributen erleichtert.

Top-Warengruppen und Top-Hersteller werden als Verlinkungen in der Instantsuche angezeigt, um die Suchtreffer direkt auf die gewünschte Warengruppe bzw. Hersteller einzugrenzen. Die Suchfeld-Gewichtung ist ein wichtiges Instrument, um die Reihenfolge von Suchtreffern zu optimieren. Ein höherer Gewichtungswert eines Feldes reiht das Produkt weiter vorne in den Suchergebnissen ein, sofern ein Treffer über das betreffende Feld erzielt wurde. Die Abstände zwischen den einzelnen Gewichtungswerten sollten nicht zu groß gewählt werden, da dies zu ungewollten Ergebnissen führen kann.

"Aktive Indizes" legt die aktivierten Indizes fest. Wenn Sie kein Forum im Frontend einsetzen, dann können Sie den Forum Index an dieser Stelle deaktivieren und die zugehörige geplante Aufgabe zur Aktualisierung des Forum Index ebenfalls. Über "Index immer neu erstellen" wird MegaSearch angewiesen immer eine Reindexierung anstatt einer Aktualisierung durchzuführen. Dadurch muss im Hintergrund nicht mehr auf die Aktualisierung von Produktdaten überprüft und reagiert werden.

Alternative Vorschläge zu einem Suchbegriff werden optional unter "Meinten Sie?" angezeigt. Dafür werden die Produktnamen als sogenannte N-Grams in einen separaten Suchindex gespeichert. Bei hunderttausenden Produkten kann diese Indexierung unverhältnismäßig viel Zeit beanspruchen. Daher macht es Sinn über "Maximal zu indexierende Vorschläge" eine Obergrenze festzulegen.

Die Einstellungen zur Textanalyse richten sich an fortgeschrittene Anwender und steuern, wie die zu durchsuchenden Texte intern durch Lucene.Net verarbeitet werden. Lucene.Net vergleicht dabei nicht direkt Suchbegriff mit z.B. dem Produktnamen, sondern die daraus abgeleiteten Terms. Folglich wird auch nicht der ursprüngliche Text, sondern die daraus (mit Hilfe sog. Analyzer) ermittelten Terms in den Index gespeichert. Analog wird bei Eingabe eines Suchbegriffs dieser ebenfalls in Terms zerlegt, um ihn mit dem Index vergleichbar zu machen. Man spricht bzw. unterscheidet daher hinsichtlich interner Verarbeitung auch zwischen Such- und Indexierungsphase.

Die Einstellung "Textanalyse" legt den "Standardanalysierer" fest, auf den immer dann zurückgegriffen wird, wenn für ein Feld kein spezieller Analyzer verwendet wird (Fallback). Standardmäßig verarbeitet MegaSearch Texte immer sprachbezogen (empfohlen) -, nur in Sonderfällen sollte hier ein abweichender Analyzer ausgewählt werden (experimentell). Für die Felder SKU, EAN und Hersteller-Produktnummer hat dies keinerlei Auswirkung, da diese Texte immer nach Stichwörtern analysiert werden (KeywordAnalyzer). Die Minimale Wortlänge legt die minimale Länge der durch den Analyzer emittierten Terms fest. Terms geringerer Länge werden während Such- und Indexierungsphase ignoriert. Bei einem sehr großen Suchindex bzw. sehr vielen Produkten kann es sinnvoll sein, diesen Wert zu erhöhen, um "Trefferrauschen" zu mindern, also um weniger, dafür akkuratere Treffer zu erzielen.

Unter "Erweiterte Textanalyse" werden weitere Optionen für eine noch feinere Steuerung freigegeben. "Abweichende Textanalyse" legt eine vom obigem "Standardanalysierer" abweichende Worttrennung und Filterung fest und wird insbesondere beim für die Suche wichtigen Produktnamen angewendet. Der Produktname ist in Sachen Textanalyse ein Spezialfall, der sich hinsichtlich Textart von Shop zu Shop deutlich unterscheiden kann. "Rote Wohnraumdecke mit Karomuster für gemütliche Abende" wäre z.B. ein beschreibender und "XLB-A9.Cistus Incanus Pulver" ein bezeichnender Name. Ist der Produktname überwiegend bezeichnender Natur, dann kann es sinnvoll sein, über "Abweichende Textanalyse" eine andere Worttrennung zu verwenden, um zu vermeiden, dass die Bezeichnungen u.U. zu sehr zerhackstückt oder einzelne Terms ausgefiltert werden. Beispiel: Für den Produktnamen "XLB-A9.Cistus Incanus Pulver" werden mit MegaSearch Standard-Einstellungen (ohne erweiterte Textanalyse) die folgenden Terms erzeugt: xlb, a9, cistus, incanus, pulv. Das kann in Bezug auf die ersten beiden Terms zu tendenziell zu vielen, als zu ungenau empfundenen Treffern führen, sofern nach "xlb-a9.cistus" gesucht wird. Stattdessen würde "Abweichende Textanalyse" mit dem Wert Whitespace folgende Terms emittieren: xlb-a9.cistus, incanus, pulv. Bei gleichem Suchbegriff dürfte hier eine akkuratere Trefferliste zu erwarten sein. "Erweiterte Textanalyse" ermöglicht zudem Listen für Sonderfälle zu pflegen, u.a. für Abkürzungen, Synonyme, Wörterbuchergänzungen und Ausnahmen für Wortzusammensetzungen. Das kann bei speziellen, häufig auftretenden Begriffen von Bedeutung sein. Ein Shop für Computer-Hardware könnte hier als Synonyme z.B. "notebook,laptop,convertible,mobilcomputer" pflegen.

Sucheinstellungen bei der Bearbeitung von Objekten

Unter Verwendung von MegaSearch Plus lässt sich bei Produkt- und Spezifikationsattributen festlegen, ob im Frontend Filter für das betreffende Attribut angeboten werden sollen. Im Falle von Spezifikationsattributen ist dies auch bei der Produktbearbeitung bei individuellen Zuordnungen von Attributen zu Produkten möglich. Es wird aber empfohlen diese Einstellung direkt beim Attribut vorzunehmen, weil es das Arbeiten mit Attributen erleichtert. Wenn Sie Beeinträchtigungen der Performance in Folge zu vieler Attribute beobachten, dann sollten Sie die bereits erwähnte Option "Filtern zulassen auf Produktebene ignorieren" aktivieren und "Filtern ermöglichen" bei jenen Spezifikationsattributen deaktivieren, nach denen nicht zwingend im Frontend gefiltert werden muss.

Bei der Darstellung der Suchfilter kann zwischen Kontroll-, Farb- und Bildkästchen und "Numerischer Bereich" ausgewählt werden. Letzterer steht nur bei Spezifikationsattributen zur Verfügung und erfordert bei den Optionen numerische Werte zu hinterlegen. Über diesen Filtertyp lassen sich z.B. Farbbereiche bzw. Farbnuancen definieren, die dann im Frontend über eine Von-Bis-Auswahl gefiltert werden können. Dieser Typ bietet sich auch bei Attributen mit sehr vielen Optionen an, bei denen eine Einzelauswahl zu unübersichtlich wäre. Die Einstellung "Optionsnamen indexieren" bewirkt, dass die Namen von Optionen mit in den Suchindex aufgenommen werden, damit die zugehörigen Produkte über sie ebenfalls gefunden werden.

Ausblick

Die aktuell weiteren, in Planung befindlichen Optionen und Erweiterungen für MegaSearch.

  • UND-Verknüpfung der Wörter eines Suchbegriffs. Bedeutet, je mehr Wörter der Suchbegriff enthält, desto weniger Treffer werden generiert.
  • Sortierung nach Empfehlung, gemäß durch den Händler vorgegebener Reihenfolge. Diese Option existiert derzeit nur bei Produktlisten von Warengruppen, nicht bei der Suche.
  • Suchindex für Stories des Page Builder.
  • Warengruppensuche liefert Link zur Warengruppe.
Ihr Kommentar