Besucher ihres Onlineshops suchen häufig nach Begriffen, die so nicht in Ihren Produktdaten zu finden sind. Synonyme dienen dazu, alternative Begriffe bei der Suche zu berücksichtigen. Wer zum Beispiel nach „Hemd“ sucht, könnte dadurch auch „Blusen“ angezeigt bekommen.
Thesaurus-Onlinetools können helfen abgestufte Beziehungen zu einem Begriff zu ermitteln. (Beispiel: https://www.openthesaurus.de/) Die Suche nach „Helm“ liefert dort alternative Begriffe wie zum Beispiel „Kopfschutz“. Auch die Auswertung verwendeter Suchbegriffe über ein Tracking-Tool wie Google Analytics, kann nützlich sein um gezielt bessere Suchergebnisse im Onlineshop umzusetzen.
OpenSearch
Über das OpenSearch Mapping kann das Verhalten der Suche im Onlineshop angepasst werden. In diesem Beispiel fügen wir ins Mapping für die Produktdaten Synonyme hinzu, um alternative Begriffe bei der Suche zu berücksichtigen.
Die Anpassungen müssen in den „settings“ der OpenSearch Mapping Datei im JSON Format vorgenommen werden.
Siehe auch:
„Bitte nehmen Sie nur Änderungen vor, wenn Sie mit der Technik vertraut sind! Falsche Einstellungen können zum Datenverlust führen.“
Auslieferungszustand
Im Auslieferungszustand sehen die „settings“ im Elasticsearch Mapping wie folgt aus:
"settings":{
"index.mapping.nested_objects.limit":20000,
"max_result_window":100000,
"max_ngram_diff":"50",
"analysis":{
"filter":{
"nGram_filter":{
"type":"nGram",
"min_gram":2,
"max_gram":20,
"token_chars":[
"letter",
"digit",
"punctuation",
"symbol"
]
}
},
"analyzer":{
"nGram_analyzer":{
"type":"custom",
"tokenizer":"whitespace",
"filter":[
"lowercase",
"asciifolding",
"nGram_filter"
]
},
"whitespace_analyzer":{
"type":"custom",
"tokenizer":"whitespace",
"filter":[
"lowercase",
"asciifolding"
]
}
}
}
}
Synonym-Filter erstellen
Die Suche im Onlineshop erfolgt über verschiedene Datenfelder, die alle auf den „nGram_analyzer“ verweisen. Um den „nGram_analyzer“ zu erweitern muss ein zusätzlicher Synonym-Filter, der die alternativen Begriffe aufnimmt, unter „filter“ eingetragen werden. Anschließend teilen wir dem „nGram_analyzer“ mit, dass der neue Filter zur Analyse zusätzlich herangezogen werden soll:
"settings":{
"index.mapping.nested_objects.limit":20000,
"max_result_window":100000,
"max_ngram_diff":"50",
"analysis":{
"filter":{
"synonym_filter":{
"type":"synonym",
"synonyms":[
"dame, damen, mädchen, frauen, frau",
"herr, herrn, herren, junge, jungen"
]
},
"nGram_filter":{
"type":"nGram",
"min_gram":1,
"max_gram":20,
"token_chars":[
"letter",
"digit",
"punctuation",
"symbol"
]
}
},
"analyzer":{
"nGram_analyzer":{
"type":"custom",
"tokenizer":"whitespace",
"filter":[
"lowercase",
"asciifolding",
"synonym_filter",
"nGram_filter"
]
},
"whitespace_analyzer":{
"type":"custom",
"tokenizer":"whitespace",
"filter":[
"lowercase",
"asciifolding"
]
}
}
}
}
Tragen Sie unter „synonyms“ die alternativen Begriffe ein. Da der „lowercase“ vor dem „synonym_filter“ steht, müssen alle Begriffe kleingeschrieben werden. Wichtig, der „synonym_filter“ im „nGram_analyzer“ muss vor dem „nGram_filter“ eigetragen werden.
„Setzen Sie Synonyme in der Elasticsearch Mapping Datei sparsam ein, um nicht die Index Größe Ihrer Produktdatenbank zu überschreiten. Es kann dazu führen, dass keine neuen Produkte in Ihrem Onlineshop aufgenommen werden können.“
Weitere Möglichkeiten und Schreibweisen des Synonym Filters sind im Elasticsearch Guide unter „Synonym token filter“ beschrieben.
Siehe: