Konfiguration des Such-Moduls

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. 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

Parameter

Beschreibung

format

Dateiformat des Datenfeeds, z.B. csv. Aktuell wird nur csv unterstützt.

encoding

Zeichencodierung des Feeds, z.B. ISO-8859-1. In der V8s werden aktuell nur ISO-Codierungen unterstützt, d.h. utf-8 wird nicht unterstützt.

chunk_size

Anzahl der Zeilen pro Verarbeitungsschritt (Chunk). Standardwert: 1000.

dir_path

Pfad für die automatisch generierten temporären JSON-Dateien, die beim Import als Zwischenspeicher dienen, z.B. /data/subshop_data.

Pfad wird bei der Einrichtung des Suchmoduls durch WEBSALE angegeben und kann nicht geändert werden.

remove_na_values

Entfernt ungültige oder leere Werte aus dem Feed.

  • true → Leere oder ungültige Werte werden beim Import entfernt.

  • false → Werte bleiben erhalten und werden in Elasticsearch importiert.

new_product_days

Legt fest, wie viele Tage ein Produkt nach seiner Erstellung als „neu“ gilt, z.B. 365. Diese Information wird benötigt, um Sortierungen oder Filter nach “neusten Produkten” zu nutzen.

invalid_docs_max

Maximale Anzahl fehlerhafter Zeilen, bevor der Importprozess abgebrochen wird. Wert 0 bedeutet, dass der Prozess bei der ersten fehlerhaften Zeile stoppt.

Damit der Prozess fortgeführt werden kann, müssen die Fehler behoben werden.

log_percent

Schwelle in Prozent, bei der der Fortschritt des Imports geloggt wird. Beispiel: 10 bedeutet, dass nach jeweils 10 % der verarbeiteten Daten ein Log-Eintrag erfolgt.

Die Logs stehen zum aktuellen Zeitpunkt nur der WEBSALE AG zur Verfügung und können bei Bedarf resp. auf Anfrage zugesendet werden.

product_id

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. number

base_id

Basis-Produkt-ID. Es muss der technische Feldname des Produktdatenfelds, das die Produktnummer enthält, angegeben werden, z.B. prodiindex

is_base_product

Es muss der technische Feldname des Produktdatenfelds aus dem Datenfeed angegeben werden, das die Information enthält, ob es sich um ein Basisprodukt handelt.

creation_date

Es muss der technische Feldname des Produktdatenfelds aus dem Datenfeed angegeben werden, das den Timestamp der Erstellung des Produktes enthält.

api_store_id

Name der Lagerbestands-ID aus der REST Lagerbestand Schnittstelle, z.B. StoreId

es_store_id

Lagerbestands-ID steht

Es muss der technische Feldname des Produktdatenfelds aus dem Datenfeed angegeben werden, das diese Information enthält, z.B. storeid

inventory

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. inventory

inventory_active

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. inventory-active

inventory_type

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. inventory_type

category_str

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. allcategories

category_ids

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. allcatids

all_category_ids

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. catids

category_separator

Liegen Produkte in mehrere Kategorien, muss hier das Trennzeichen, z.B. /, angegeben werden, um die Daten korrekt voneinander zu trennen.

value_separator

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).

field_separator

Zeichen, das die Spalten im CSV-Datenfeed voneinander trennt. Standard ist der Tabulator (TAB), empfohlen für Tab-CSV-Dateien. Andere Trennzeichen (z. B. ; oder ,) sind möglich, müssen aber mit der tatsächlichen Feed-Struktur übereinstimmen.

index_category_hierarchy

Legt fest, ob das Importmodul die Kategorie Hierarchie automatisch aufbaut. Bei true reicht es, wenn Produkte nur in der untersten Kategorie eingeordnet sind, sie werden dann auch in übergeordneten Kategorien gefunden. Bei false wird die Hierarchie nicht automatisch erstellt. Gilt global für alle Subshops.

Default: false

 

 

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

Parameter

Beschreibung

nlp_lang

Der Parameter nlp_lang legt fest, in welcher Sprache die textuelle Aufbereitung der Suchdaten erfolgt.

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:

  • Deutsch (de) = Standard

  • Englisch (en)

  • Spanisch (es)

  • Französisch (fr)

  • Italienisch (it)

  • Niederländisch (nl)

  • Portugiesisch (pt)

  • Dänisch (da)

  • Tschechisch (cs)

  • Polnisch (pl)

  • Finnisch (fi)

  • Indonesisch (id)

  • Slowakisch (sk)

  • Türkisch (tr)

  • Schwedisch (sv)

  • Norwegisch Bokmål (nb)

datafeed_url

URL des Datenfeeds. Wird vom WEBSALE Support eingerichtet und bereitgestellt.

variant_fields

Liste der technischen Produktdatenfelder, z.B. Farbe (color), Größe (size) etc., die Varianten eines Produktes beschreiben (siehe Abschnitt Variant Fields).

enabled

Verknüpft beim Import Basis-Produkte und ihre Varianten.

fields

Technische Namen der Variantenfelder eines Produkts (immer in Kleinbuchstaben)

index_configs

Indexspezifische Konfigurationen

product

Hauptindex für die Produktsuche. Enthält die Produktdatenfelder für den Suchindex.

enabled

Aktiviert die Erstellung dieses Index im Import

custom_fields

Individuell definierte Produktdatenfelder, die zusätzlich in den Suchindex aufgenommen werden. Angabe des technischen Namen des Produktdatenfeldes.

name

Technischer Name des Produktdatenfeldes (immer in Kleinbuchstaben)

type

Datentyp des Feldes. Verfügbare Typen: text, keyword, integer, float, double, date, boolean, template.
template ist ein spezieller Feldtyp für Textfelder, die sowohl durchsuchbar als auch filterbar sein sollen.

category

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.

enabled

Aktiviert die Erstellung bzw. Nutzung dieses Index. Muss sowohl in der Import-Konfiguration als auch in der Suchmodul-Konfiguration auf true gesetzt werden.

custom_fields

Individuell definierte Felder, die zusätzlich in den Kategorie-Index aufgenommen werden sollen, analog zu product (siehe Abschnitt custom_fields des Produktindex). Im Default sind nur die Standard-Kategoriefelder enthalten (IDs und Name). Jedes Feld wird mit name(technischer Feldname, immer Kleinbuchstaben) und type (Datentyp, z.B. text, keyword, template) angegeben.

custom_config

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.

search_fields

Liste der Felder, die bei einer Kategoriensuche durchsucht werden (analog zu product). Sollte immer mindestens die Felder cat_str und cat_str_path enthalten. Pro Feld kann ein boost-Wert angegeben werden, um die Gewichtung zu steuern.

field

Technischer Name des zu durchsuchenden Feldes. Per Default verfügbar: cat_str, cat_str_path.

boost

Gewichtungsfaktor für das Feld bei der Suche. Höhere Werte erhöhen die Relevanz von Treffern in diesem Feld.

display_fields

Liste der Felder, die in der Suchantwort zurückgegeben werden (analog zu product). Benötigt wird mindestens cat_id. Per Default verfügbare Felder: cat_id, cat_id_path, cat_str, cat_str_path.

field

Technischer Name des Feldes, das in der Antwort enthalten sein soll.

content

Hauptindex für die Suche über Inhaltsseiten wie Impressum, Datenschutz, AGB etc.

Mehr Informationen dazu finden Sie im Abschnitt content.

completion

Index für Vorschläge (Autocomplete resp. Autovervollständigung)

enabled

Aktiviert die Erstellung dieses Index im Import

fields

Liste der Produktdatenfelder aus dem Suchindex, die für Vorschläge verwendet werden.

stopwords

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.

synonyms

Definition manueller Synonymlisten.

Mehr Informationen dazu im Abschnitt synonyms.

lemmatization

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

Parameter

Beschreibung

path

Pfad zu einer eigenen .txt-Datei mit Stoppwörtern (ein Wort pro Zeile). Beispiel: /data/stopwords_de.txt

Wird keine Datei angegeben, wird die Standardliste von spaCy verwendet.

whitelist

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“.

blacklist

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

Parameter

Beschreibung

path

Optional kann eine TXT-Datei mit Synonymen hinterlegt werden (ein Wort pro Zeile). Beim Parameter wird der Pfad der txt-Datei angegeben.

Beispiel: /data/stopwords_de.txt

Ä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.

clouds

Liste mit manuell definierten Synonymgruppen. Jede Gruppe beschreibt eine Beziehung zwischen Quell- und Zielbegriffen.

src

Quellbegriff(e), die ersetzt oder verknüpft werden sollen. Kann als einzelner String oder als Liste angegeben werden.

target

Zielbegriff(e), auf die verwiesen wird. Dies kann als einzelner String oder als Liste angegeben werden.

mode

Verknüpfungsmodus:

  • uni → unidirektional (nur src → target, d. h. bei Eingabe von src wird nach target gesucht, nicht umgekehrt)

  • bi → bidirektional (alle Begriffe innerhalb von src und target gelten gegenseitig als Synonyme)

Hinweis: Nach Änderungen an Synonymen muss die Datenfeed-Generierung manuell gestartet werden, damit eine Neuindexierung erfolgt.

 

© 2025 WEBSALE AG | Impressum | Datenschutz