Du siehst Dir gerade den Artikel zu einer älteren Version der Erweiterung an!
Die Advanced Search steht Dir ab dem Plan Shopware Evolve als Erweiterung zur Verfügung.
Die Advanced Search bietet Dir einfache Konfigurationsmöglichkeiten und aufgrund der Elasticsearch-Basis hohe Performance.
Da die Advanced Search auf Elasticsearch basiert, ist eine Elasticsearch-Instanz Grundvoraussetzung für den Betrieb. Wie Du Elasticsearch in Shopware 6 integrierst, erfährst Du hier.
Als Bestandteil des Shopware Evolve Plans steht Dir die Advanced Search als Erweiterung zur Verfügung.
Du kannst die Erweiterung unter Erweiterung > Meine Erweiterungen herunterladen und installieren.
Wenn Du Dich im Reiter Shopware Account angemeldet hast, wird die Erweiterung im Reiter Allgemein aufgelistet und kann über den "..."-Button installiert werden.
Nachdem die Erweiterung installiert wurde, kannst Du diese über den Schalter links neben der Erweiterung aktivieren.
Weitere Informationen zur Verwaltung von Erweiterungen findest Du hier.
Plugin kann nicht installiert werden
Solltest Du bei der Installation der Erweiterung die Meldung
"Could not install plugin, got 1 failure(s). Required plugin/package "shopware/platform >=v6.0
erhalten, ist es erforderlich, eine Anpassung der composer.json der Erweiterung vorzunehmen.
Die Erweiterung findest Du im Shopware-Verzeichnis unter /custom/plugins/SwagEnterpriseSearchPlatform.
In der composer.json passt Du diesen Bereich an:
"require": {
"shopware/platform": ">=6.1.0 < 6.3.0"
},
Dort entfernst Du den Eintrag
"shopware/platform": ">=6.1.0 < 6.3.0"
und fügst
"shopware/core": ">=6.1.0 < 6.3.0",
"shopware/storefront": ">=6.1.0 < 6.3.0",
"shopware/administration": ">=6.1.0 < 6.3.0",
"shopware/elasticsearch": ">=6.1.0 < 6.3.0"
ein.
Nachdem Du die Änderungen gespeichert hast, kannst Du die Erweiterung im Admin unter Erweiterungen > Meine Erweiterungen installieren.
Die Konfiguration der Advanced Search findest Du unter Einstellungen > Erweiterungen > Shopware Advanced Search.
Im Tab Übersicht kannst Du die grundlegende Konfiguration der Suche vornehmen.
Im Bereich Allgemeine Einstellungen wird über Welche Informationen werden indexiert und priorisiert (1) ein Modal aufgerufen, in dem Du die für die Suche zu berücksichtigenden Datensätze festlegst.
Im Abschnitt Trefferanzahl definierst Du die Anzahl der angezeigten Elemente für die Vorschausuche (2) und die Ergebnisseite (3).
Durchsuchbare Informationen
Um die zu durchsuchenden Daten festzulegen, wähle zunächst aus, für welche Entity (1) Du die Einstellung vornehmen möchtest. In der Advanced Search können Produkte, Kategorien und Hersteller durchsucht werden.
Anschließend wird Dir unterhalb eine Liste mit allen für die gewählte Entity verfügbaren Datensätzen aufgelistet. Dort kannst Du für jeden Datensatz festlegen, ob dieser nicht durchsucht (2), durchsucht (3) oder priorisiert (4) werden soll.
Priorisiert bedeutet, dass Treffer bei der Suche für den Inhalt dieses Datensatzes eine doppelt so hohe Gewichtung erhalten.
Bei Datensätzen, die auf Datenbankebene als Text (z.B. varchar) definiert sind, kannst Du zusätzlich festlegen, ob hierbei auch Teiltreffer (5) einbezogen werden sollen und ob auch Zusammengesetzte Wörter (6) berücksichtigt werden.
Teiltreffer sind z.B. kleinere Wortteile eines längeren Begriffs (Testprodukt).
Bei zusammengesetzten Wörtern werden mehrere Wörter auch ohne Eingabe eines Leerzeichens kombiniert (Test Produkt findet auch Testprodukt).
Nachdem Du Initial die Einstellungen der Indexierung vorgenommen hast, ist es erforderlich, eine Indexierung über die Serverkonsole durchzuführen. Wie Du die Indexierung durchführst, erfährst Du im Abschnitt Indexierung.
Beachte bitte, dass die Konfiguration der zu indexierenden Daten aktuell nicht Verkaufskanalspezifisch möglich ist.
Die Vorschau ermöglicht Dir, die Sucheinstellungen direkt im Admin zu testen.
Um die Vorschau zu nutzen, wähle zunächst den Verkaufskanal (1), für den Du die Suche testen möchtest.
Über die Auswahl (2) neben dem Suchfeld (3) kannst Du festlegen, ob Du die Suche für Produkte, Kategorien oder Hersteller testen möchtest.
Nachdem Du einen Suchbegriff eingegeben hast, wird Dir unterhalb eine Liste mit den Suchergebnissen angezeigt.
In dieser Liste wird für die Suchergebnisse zusätzlich ein Ranking eingeblendet, über das Du die Relevanz zum Suchbegriff erkennen kannst. Dieses Ranking wird anhand der Elasticsearch-Suchalgorithmen errechnet. Einige weitere Informationen zum Ranking eines Suchergebnisses erhältst Du, wenn Du mit der Maus über das Ranking des Suchergebnisses hooverst.
Neben der Priorisierung von einzelnen zu durchsuchenden Datensätzen, besteht die Möglichkeit, zusätzliche Boostings anzulegen. Ein Boosting bietet Dir gezielte Konfigurationsoptionen, um z.B. bestimmte Produkte in den Suchergebnissen weiter oben anzuzeigen.
Produkt-Boosting
Für das Boosting von Produkten werden vorhandene dynamische Produktgruppen verwendet. Es werden die Produkte höher gewertet, die in der Produktgruppe vorhanden sind und auf die die Suchanfrage generell zutrifft.
Solltest Du bisher noch keine entsprechende dynamische Produktgruppe erstellt haben, empfehlen wir Dir, dies als ersten Schritt durchzuführen.
Für die Konfiguration eines Produkt-Boostings vergib zunächst einen Namen (1) und die gewünschte Boosting-Relevanz im Feld Boost (2). Diese Boosting Relevanz wird den Produkten zur ohnehin schon erhaltenen Relevanz hinzuaddiert. Um das Boosting zu aktivieren, klicke auf den Schalter Aktiv (3). Optional ist es möglich, das Boosting nur in einem bestimmten Zeitraum zu verwenden. Hierzu stelle den Zeitraum in den Feldern Aktiv von (4) und Aktiv bis (5) ein. Als Stream Typ (5) wähle Product Stream aus, hierdurch wird das Feld TypeId (7) eingeblendet. Im Auswahlfeld TypId kannst Du dann aus den vorhandenen dynamischen Produktgruppen wählen.
Kategorie- und Hersteller-Boosting
Für das Boosting von Kategorien und Herstellern kannst Du direkt im Modal des Boostings eigene Regeln definieren.
Bei der Konfiguration eines Kategorie oder Hersteller-Boostings, vergib zunächst einen Namen (1) und die gewünschte Boosting-Relevanz im Feld Boost (2). Um dieses Boosting zu aktivieren, klicke auf den Schalter Aktiv (3).
Über die Felder Aktiv von (4) und Aktiv bis (5) kannst Du das Boosting zeitlich begrenzen, ohne dieses manuell zu einer bestimmten Zeit ein- bzw. ausschalten zu müssen.
Als Stream Typ (6) wähle Entity Stream aus, im nun erscheinenden Feld Typ (7) Kategorie oder Hersteller.
Anschließend wird die Möglichkeit zum Erstellen von Regeln (8) eingeblendet. Diese Regel-Konfiguration basiert auf dem Rule-Builder. Hiermit kannst Du individuelle Bedingungen erstellen, anhand derer das Boosting angewendet werden soll.
Nachdem Du das erste Mal die Konfiguration der Advanced Search vorgenommen hast, ist es erforderlich, den Index aufzubauen. Dies ist in 3 Schritten in der Serverkonsole möglich.
Zunächst werden die Indizes erstellt bzw. aktualisiert
php bin/console dal:refresh:index
Nachdem dieser Schritt vollständig durchgelaufen ist, erfolgt im zweiten Schritt die Verarbeitung
php bin/console messenger:consume
Abschließend können noch die Aliase für die Indizes angelegt werden
php bin/console es:create:alias
Die Indexierung funktioniert genau wie bei der technisch zu Grunde liegenden Elasticsearch-Integration. Daher findest Du weitere Informationen in der Dokumentation zu Elasticsearch.
Nachdem die initiale Indexierung erfolgt ist, werden weitere Änderungen in Produkten und neue Produkte automatisch übernommen. Bei Änderungen der Konfiguration oder der Sucheinstellungen ist ein Neuaufbau des Suchindexes notwendig.