Konfiguration des Such-Moduls
Die Konfiguration des Suchmoduls ist derzeit noch nicht direkt im OSB verfügbar – weder über eine grafische Oberfläche noch über eine Code-basierte Eingabe. Aktuell kann die Einrichtung ausschließlich über WEBSALE vorgenommen werden.
In Kürze wird die Möglichkeit zur Konfiguration per Code bereitgestellt.
Wir bitten bis dahin noch um etwas Geduld und informieren Sie, sobald diese Option zur Verfügung steht.
Bis dahin teilen Sie bitte Ihre gewünschten Einstellungen Ihrem WEBSALE-Ansprechpartner mit,
damit die Anpassungen im Suchmodul für Sie vorgenommen werden können.
Inhaltsverzeichnis
- 1 1. Importkonfiguration & Konfiguration des Suchmoduls
- 2 2. Datenfeed im Dataflow Manager
- 3 3. Konfiguration des Importmoduls
- 4 4. Konfiguration des Suchmoduls
- 4.1 4.1 Suchvorschläge (suggest_config)
- 4.2 4.2 Filter (filter_config)
- 4.3 4.3 Subshopkonfiguration für das Suchmodul
- 4.3.1 4.3.1 Basiskonfiguration des Suchmoduls (search_config)
- 4.3.2 4.3.2 Datenfelder
- 4.3.2.1 4.3.2.1 Datenfelder für die Suche (search_fields)
- 4.3.2.2 4.3.2.2 Datenfelder im Such-Response (display_fields)
- 4.3.2.3 4.3.2.3 Datenfelder für die Filter (filter_fields)
- 4.3.2.4 4.3.2.4 Ausschluss bestimmter Produkte (filter_fields)
- 4.3.2.5 4.3.2.5 Datenfelder für die Sortierung (sort_fields)
- 4.3.2.6 4.3.2.6 Datenfelder für Teilwortsuche (ngram_fields)
- 4.3.2.7 4.3.2.7 Variantenfelder für Filter (variant_fields)
- 4.3.2.8 4.3.2.8 Kategoriefelder (category_field)
- 4.3.3 4.3.3 Ausnahmen zur globalen Fuzzy-Logik (fuzzy_filter)
- 4.3.4 4.3.4 Sonderzeichen-Handhabung (punctuation_filter)
- 4.3.5 4.3.5 Toleranz für das Ignorieren von Stopwörtern (stopwords_filter)
- 4.3.6 4.3.6 Grammatikalische Flexion (lemmatization)
- 4.3.7 4.3.7 Index-Konfiguration (index_configs)
- 4.3.8 4.3.7.1 Produkte (Product-Index)
- 4.3.9 4.3.7.2 Autovervollständigung (Completion-Index)
- 4.3.10 4.3.7.3 Kategorien (Category-Index)
- 4.3.11 4.3.7.4 Inhaltsseiten (Content-Index)
1. Importkonfiguration & Konfiguration des Suchmoduls
Damit das Suchmodul WEBSALE | search korrekt funktioniert, müssen sowohl das zugehörige Importmodul („Bereitstellen“) als auch das Suchmodul selbst konfiguriert werden.
Beide Bereiche sind eng miteinander verknüpft, erfüllen jedoch unterschiedliche Aufgaben.
1.1 Importmodul der Suche
Im Importmodul werden die Daten für die Suche bereitgestellt.
Hier wird definiert, welche Daten importiert und verfügbar gemacht werden – beispielsweise Produkt- und Kategoriedatenfelder, JSON-Dateien für Inhalte wie AGB, Kontakt oder FAQ, Stoppwörter und andere Suchparameter.
Es reicht jedoch nicht aus, die Daten lediglich bereitzustellen.
Im Suchmodul selbst muss zusätzlich konfiguriert werden, ob und wie diese Daten berücksichtigt werden sollen. Werden die bereitgestellten Daten im Suchmodul nicht aktiviert oder eingebunden, haben sie keinen Einfluss auf die Suchfunktion.
1.2 Suchmodul
Im Suchmodul wird festgelegt, wie die bereitgestellten Daten bei der Suche im Shop – also zur Laufzeit – berücksichtigt werden.
Das bedeutet, dass beispielsweise importierte Stoppwörter, Filterregeln oder Datenfelder aktiv in der Such- und Filterlogik verwendet werden.
Erst die Kombination aus bereitgestellten Daten (Importmodul) und deren Aktivierung im Suchmodul stellt sicher, dass die gewünschte Suchkonfiguration vollständig und wirksam ist.
2. Datenfeed im Dataflow Manager
Der Datenfeed bildet die Grundlage für das Importmodul.
Der Datenfeed wird im Onlineservicebereich des DataflowManagers erstellt und enthält alle Produktinformationen, die im Suchindex berücksichtigt werden.
Über den Datenfeed werden sämtliche Produktdaten bereitgestellt, die durchsucht, gefiltert oder sortiert werden sollen. Dazu müssen im Dataflow Manager alle relevanten Produktfelder enthalten sein – z. B. Name, Beschreibung, Kategorien, Preis, Lagerbestand, Attribute usw.
Das Importmodul greift anschließend auf diesen Feed zu und wandelt die enthaltenen Daten in das interne JSON-Format für den Elasticsearch-Index um.
3. Konfiguration des Importmoduls
3.1 Datenfeed-Konfiguration
Die Zuordnung und Verarbeitung des Feeds wird im Abschnitt datafeed der Konfiguration des Importmoduls festgelegt. Hier werden Format, Encoding, Speicherpfade und die Feldzuweisungen definiert, die der Suchindex beim Import benötigt.
Standardkonfiguration
datafeed:
format: csv
encoding: ISO-8859-1
chunk_size: 1000
dir_path: /data/subshop_data
remove_na_values: true
new_product_days: 365
invalid_docs_max: 0
log_percent: 10
product_id: number
base_id: prodindexbase
is_base_product: isbaseproduct
creation_date: creationdate
api_store_id: StoreId
es_store_id: storeid
inventory: inventory
inventory_active: inventory-active
inventory_type: inventory-type
category_str: allcategories
category_ids: catids
all_category_ids: allcatids
category_separator: "/"
value_separator: ">"
field_separator: "\t"
index_category_hierarchy: false
Parameterbeschreibung
Parameter | Beschreibung |
|---|---|
| Dateiformat des Datenfeeds, z.B. |
| Zeichencodierung des Feeds, z.B. |
| Anzahl der Zeilen pro Verarbeitungsschritt (Chunk). Standardwert: |
| Pfad für die automatisch generierten temporären JSON-Dateien, die beim Import als Zwischenspeicher dienen, z.B. Pfad wird bei der Einrichtung des Suchmoduls durch WEBSALE angegeben und kann nicht geändert werden. |
| Entfernt ungültige oder leere Werte aus dem Feed.
|
| Legt fest, wie viele Tage ein Produkt nach seiner Erstellung als „neu“ gilt, z.B. |
| Maximale Anzahl fehlerhafter Zeilen, bevor der Importprozess abgebrochen wird. Wert Damit der Prozess fortgeführt werden kann, müssen die Fehler behoben werden. |
| Schwelle in Prozent, bei der der Fortschritt des Imports geloggt wird. Beispiel: Die Logs stehen zum aktuellen Zeitpunkt nur der WEBSALE AG zur Verfügung und können bei Bedarf resp. auf Anfrage zugesendet werden. |
| CSV-Spaltenname, der auf das Produktdatenfeld mit der eindeutigen Produktnummer zeigt. Es muss der technische Feldname des Produktdatenfelds, das die Produktnummer enthält, angegeben werden, z.B. |
| Basis-Produkt-ID. Es muss der technische Feldname des Produktdatenfelds, das die Produktnummer enthält, angegeben werden, z.B. |
| Es muss der technische Feldname des Produktdatenfelds aus dem Datenfeed angegeben werden, das die Information enthält, ob es sich um ein Basisprodukt handelt. |
| Es muss der technische Feldname des Produktdatenfelds aus dem Datenfeed angegeben werden, das den Timestamp der Erstellung des Produktes enthält. |
| Name der Lagerbestands-ID aus der REST Lagerbestand Schnittstelle, z.B. |
| Lagerbestands-ID steht Es muss der technische Feldname des Produktdatenfelds aus dem Datenfeed angegeben werden, das diese Information enthält, z.B. |
| Gibt den Lagerbestand eines Produktes an. Es muss der technische Feldname des Produktdatenfelds aus dem Datenfeed angegeben werden, das diese Information enthält, z.B. |
| Gibt an, ob ein Produkt die Lagerbestandsverwaltung aktiviert hat. Es muss der technische Feldname des Produktdatenfelds aus dem Datenfeed angegeben werden, das diese Information enthält, z.B. |
| Angabe, ob die Lagerbestandsverwaltung statisch oder dynamisch ist. Es muss der technische Feldname des Produktdatenfelds aus dem Datenfeed angegeben werden, das diese Information enthält, z.B. |
| Enthält alle Kategorie-Strings (Kategorienamen) eines Produkts. Ist das Produkt nur einer Kategorie zugewiesen, ist es natürlich nur der eine Kategoriename. Bei mehrere Kategoriezuweisungen, können jedoch alle übergeben werden. Es muss der technische Feldname des Datenfelds aus dem Datenfeed angegeben werden, das diese Information enthält, z.B. |
| Enthält die Kategorie-IDs des Produktes. Ist das Produkt nur einer Kategorie zugewiesen, ist es natürlich nur ein Index. Bei mehreren Kategoriezuweisungen, können jedoch alle Indexe übergeben werden. Es muss der technische Feldname des Datenfelds aus dem Datenfeed angegeben werden, das diese Information enthält, z.B. |
| Enthält alle Kategorie-IDs des Produkts inklusive des Breadcrumbs, wenn ein Produkt mehreren Kategorien zugewiesen ist. Ist das Produkt nur einer Kategorie zugewiesen, ist es natürlich nur ein Index. Bei mehrere Kategoriezuweisungen, können jedoch alle Indexe übergeben werden. Es muss der technische Feldname des Datenfelds aus dem Datenfeed angegeben werden, das diese Information enthält, z.B. |
| Liegen Produkte in mehrere Kategorien, muss hier das Trennzeichen, z.B. |
| Für Werte innerhalb eines Feldes, z.B. Bredacrumb-Trenner für die Kategorie, kann man für jedes Feld verwenden, z. B. Inhaltsstoffe bei Nahrungsmitteln. Trennzeichen für mehrwertige Inhalte pro Feld. Beim Import werden die Werte des Feldes anhand dieses Separators in einzelne Einträge gesplittet (z. B. für Kategorie-Breadcrumbs oder Inhaltsstoffe). Das Trennzeichen muss mit der Feed-Erzeugung abgestimmt sein; es darf nicht ungekennzeichnet im eigentlichen Wert vorkommen (ggf. Escaping/Quoting im Feed sicherstellen). |
| Zeichen, das die Spalten im CSV-Datenfeed voneinander trennt. Standard ist der Tabulator (TAB), empfohlen für Tab-CSV-Dateien. Andere Trennzeichen (z. B. |
| Legt fest, ob das Importmodul die Kategorie Hierarchie automatisch aufbaut. Bei |
3.2 Subshopkonfiguration im Importmodul
In diesem Abschnitt werden alle subshopspezifischen Einstellungen für das Importmodul definiert.
Jeder Subshop wird dabei als eigener Konfigurationsblock unter dem Abschnitt subshop_configs angelegt.
Über diese Konfiguration wird festgelegt, welche Daten je Subshop importiert und bereitgestellt werden. Dadurch kann das Suchmodul später pro Subshop gezielt auf die entsprechenden Daten zugreifen und die Suche individuell steuern.
Standardkonfiguration für den Subshop Deutsch
subshop_configs:
deutsch:
nlp_lang: de
datafeed_url: http://content.<shop-id>.websale.net/search/websale_search.csv
variant_fields:
enabled: true
fields:
- color
- size
index_configs:
product:
enabled: true
custom_fields:
- name: keyword_field123
type: keyword
- name: template_field456
type: template
- name: timestampcreatedat
type: date
format: strict_date_optional_time||epoch_second
- name: float_field789
type: double
category:
enabled: true
custom_fields:
- name: cat_descr
type: template
custom_config:
search_fields:
- field: cat_str
boost: 2
- field: cat_str_path
boost: 1.5
display_fields:
- field: cat_id
- field: cat_id_path
- field: cat_str
- field: cat_str_path
content:
...
completion:
enabled: true
fields:
- name: name
validate: False
- name: descr
validate: True
stopwords:
siehe: *
synonyms:
siehe: **
lemmatization:
siehe: ***
englisch:
{...}
Parameterbeschreibung
Parameter | Beschreibung |
|---|---|
| Der Parameter Dabei werden sprachspezifische Modelle und Regeln aus den NLP-Bibliotheken spaCy und Simplemma verwendet. Diese sorgen dafür, dass die Suchdaten während des Imports sprachgerecht analysiert und verarbeitet werden – beispielsweise im Hinblick auf Wortstämme, Grundformen (Lemmata) und Stoppwörter. Aktuell verfügbare Sprachen:
|
| URL des Datenfeeds. Wird vom WEBSALE Support eingerichtet und bereitgestellt. |
| Liste der technischen Produktdatenfelder, z.B. Farbe ( |
| Verknüpft beim Import Basis-Produkte und ihre Varianten. |
| Technische Namen der Variantenfelder eines Produkts (immer in Kleinbuchstaben) |
| Indexspezifische Konfigurationen |
| Hauptindex für die Produktsuche. Enthält die Produktdatenfelder für den Suchindex. |
| Aktiviert die Erstellung dieses Index im Import |
| Individuell definierte Produktdatenfelder, die zusätzlich in den Suchindex aufgenommen werden. Angabe des technischen Namen des Produktdatenfeldes. |
| Technischer Name des Produktdatenfeldes (immer in Kleinbuchstaben) |
| Datentyp des Feldes. Verfügbare Typen: |
| Index für die Kategoriesuche. Ermöglicht es, Kategorien als eigenständigen Index zu durchsuchen. Wenn beim Import ein Kategorie-Index angelegt wurde, kann dieser in der Konfiguration des Suchmoduls aktiviert werden. |
| Aktiviert die Erstellung bzw. Nutzung dieses Index. Muss sowohl in der Import-Konfiguration als auch in der Suchmodul-Konfiguration auf |
| Individuell definierte Felder, die zusätzlich in den Kategorie-Index aufgenommen werden sollen, analog zu |
| Konfigurationsblock für die Kategoriesuche. Hier wird festgelegt, welche Felder durchsucht und welche in der Antwort zurückgegeben werden. Dieser Key wird für zukünftige zusätzliche Indizes analog übernommen. |
| Liste der Felder, die bei einer Kategoriensuche durchsucht werden (analog zu |
| Technischer Name des zu durchsuchenden Feldes. Per Default verfügbar: |
| Gewichtungsfaktor für das Feld bei der Suche. Höhere Werte erhöhen die Relevanz von Treffern in diesem Feld. |
| Liste der Felder, die in der Suchantwort zurückgegeben werden (analog zu |
| Technischer Name des Feldes, das in der Antwort enthalten sein soll. |
| Hauptindex für die Suche über Inhaltsseiten wie Impressum, Datenschutz, AGB etc. Mehr Informationen dazu finden Sie im Abschnitt content. |
| Index für Vorschläge (Autocomplete resp. Autovervollständigung) |
| Aktiviert die Erstellung dieses Index im Import |
| Liste der Produktdatenfelder aus dem Suchindex, die für Vorschläge verwendet werden. |
| Definition der Stoppwort-Liste. Mehr Informationen dazu finden Sie im Abschnitt stopwords. Mehr Informationen zur Aktivierung der Funktion im Suchmodul finden Sie im Abschnitt stopwords_filter. |
| Definition manueller Synonymlisten. Mehr Informationen dazu im Abschnitt synonyms. |
| Konfiguration der grammatikalischen Flexionen. Mehr Informationen dazu finden Sie im Abschnitt lemmatization. Mehr Informationen zur Aktivierung der Funktion im Suchmodul finden Sie im Abschnitt lemmatization. |
3.2.1 Toleranz für das Ignorieren von Stoppwörtern (stopwords)
Stoppwörter sind wenig aussagekräftige Wörter (z.B. Artikel, einfache Präpositionen), die bei der Auswertung von Suchanfragen ignoriert werden können, um irrelevante Übereinstimmungen zu reduzieren.
Ob diese Ignorierlogik zur Laufzeit angewendet wird, steuert das Suchmodul. Welche Wörter als Stoppwörter behandelt, ausgenommen (Whitelist) oder zusätzlich aufgenommen (Blacklist) werden, definiert das Import-Modul.
In diesem Abschnitt wird festgelegt, wie die Suchfunktion mit häufig vorkommenden, bedeutungsarmen Wörtern („Stoppwörtern“) umgeht. Als Grundlage dient die Standardliste von spaCy, die gängige Funktionswörter wie der, die, das, mit, von usw. enthält.
Für optionale Whitelist- und Blacklist-Einträge kann diese Liste individuell angepasst werden:
Die Whitelist entfernt Wörter aus der spaCy-Stoppwortliste, sodass sie nicht ignoriert und bei der Suche berücksichtigt werden.
Die Blacklist fügt Wörter zur spaCy-Liste hinzu, sodass sie bei der Suche ausgefiltert werden.
(Wird ein Wort blackgelistet, das bereits enthalten ist, bleibt die Wirkung unverändert.)
Optional kann eine eigene .txt-Datei mit Stoppwörtern verwendet werden. Soll diese extern – z. B. auf einem Kundensystem – hinterlegt werden, ist eine technische Abstimmung zur Einbindung der Datei erforderlich.
Damit die konfigurierten Stoppwörter im Suchprozess tatsächlich berücksichtigt werden,
muss im Suchmodul der Parameter stopwords_filter.enabled: true aktiviert sein → siehe Abschnitt „Stoppwort-Filter im Suchmodul“.
Standardkonfiguration stopwords
stopwords:
path: "" # optional: Pfad zu eigener .txt, sonst spacy-Default
whitelist: # Begriffe, die NICHT als Stopwort behandelt werden sollen
- mit # wichtig für Produktausprägungen (z. B. Jacke mit Kapuze)
- ohne # wichtig für Tiernahrung (z. B. ohne Getreide)
- für # wichtig für Zielgruppen (z. B. für Damen)
- in # wichtig für Farben/Größen (z. B. in Blau, in 40)
- und # wichtig für Kombinationen (z. B. Huhn und Reis)
blacklist: # zusätzliche Stopwörter, die entfernt werden sollen
- der
- die
- das
- ein
- eine
- einer
- eines
- einem
- einen
- bei
- nach
- von
- zu
- zum
- zur
- auch
- oder
Parameterbeschreibung stopwords
Parameter | Beschreibung |
|---|---|
| Pfad zu einer eigenen Wird keine Datei angegeben, wird die Standardliste von spaCy verwendet. |
| Wörter, die nicht als Stoppwort behandelt werden sollen (Ausnahmen von der Standardliste). Eignet sich für fachlich relevante Begriffe wie „mit“, „ohne“, „für“, „in“, „und“. |
| Zusätzliche Wörter, die als Stoppwort entfernt werden sollen (Ergänzung zur Standardliste von spaCy) Typisch: Artikel/Präpositionen wie „der“, „die“, „das“, „ein“, „eine“, „einer“, „eines“, „einem“, „einen“, „bei“, „nach“, „von“, „zu“, „zum“, „zur“, „auch“, „oder“. |
Die Funktion muss zusätzlich dann noch für das Suchmodul aktiviert werden.
3.2.2 Synonyme (synonyms)
Die Synonymfunktion ermöglicht es, Begriffe in der Suche miteinander zu verknüpfen. Dadurch erscheinen bei der Eingabe eines Begriffs auch Treffer zu gleichbedeutenden oder verwandten Begriffen.
Synonyme können entweder bidirektional („Jacke“ = „Jacket“) oder unidirektional („Turniersakko“ → „Turnierjacke“) definiert werden. Optional lassen sich Synonymlisten als Datei hinterlegen oder direkt in der Konfiguration pflegen.
Im Standard sind keine Synonyme hinterlegt. Die Funktion wird aktiv, sobald entweder eine Synonymliste (path) angegeben oder manuelle Synonyme (clouds) definiert werden.
Beispielkonfiguration
synonyms:
path: ""
clouds:
- src: #Beispiel 1
- trenchcoat
- kutte
- caban
- janker
target:
- mantel
- jacke
mode: bi
- src: #Beispiel 2
- kängoro
- kängguhru
- kengooroo
target: känguru
mode: uni Beispiel 1 (
mode: bi)
Die Begriffe „trenchcoat“, „kutte“, „caban“, „janker“, „mantel“ und „jacke“ sind bidirektional miteinander verknüpft. Eine Suche nach einem dieser Begriffe führt auch zu Treffern, die einen der anderen Begriffe enthalten. Beispielsweise liefert eine Suche nach „Janker“ auch Ergebnisse mit „Mantel“ oder „Trenchcoat“, und umgekehrt.Beispiel 2 (
mode: uni)
Die Begriffe „kängoro“, „kängguhru“ und „kengooroo“ werden einseitig auf den Begriff „känguru“ gemappt. Eine Suche nach einer der Schreibvarianten führt zu Treffern mit „känguru“, nicht jedoch umgekehrt. Dieser Modus eignet sich vor allem für Tippfehler, Schreibvarianten oder vereinheitlichte Begriffe.
Parameterbeschreibung
Parameter | Beschreibung |
|---|---|
path | Optional kann eine TXT-Datei mit Synonymen hinterlegt werden (ein Wort pro Zeile). Beim Parameter wird der Pfad der Beispiel: Änderungen an der Datei erfordern eine Neuindexierung. Falls die Datei extern – z. B. auf einem Server des Kunden – hinterlegt werden soll, ist eine gesonderte technische Abstimmung erforderlich, um den Zugriff auf diese Datei sicherzustellen. |
| Liste mit manuell definierten Synonymgruppen. Jede Gruppe beschreibt eine Beziehung zwischen Quell- und Zielbegriffen. |
| Quellbegriff(e), die ersetzt oder verknüpft werden sollen. Kann als einzelner String oder als Liste angegeben werden. |
| Zielbegriff(e), auf die verwiesen wird. Dies kann als einzelner String oder als Liste angegeben werden. |
| Verknüpfungsmodus:
|
Hinweis: Nach Änderungen an Synonymen muss die Datenfeed-Generierung manuell gestartet werden, damit eine Neuindexierung erfolgt.
© 2025 WEBSALE AG | Impressum | Datenschutz