Shopware Enterprise Search has comprehensive configuration options to configure the search as needed.
The basic settings allow some general configuration of the search:
Synonyms allow you to configure search terms which are considered to be synonym or should match the same result set, e.g. "shoe" and "sneaker". Synonyms are managed in synonym groups, where all search terms in a synonym group are considered synonyms.
Additionally you can limit synonyms to certain shops and add a shopping world to the search result page of search terms belonging to that synonym group. That way you can have your "shoe shopping world" appear on searches for "shoe" as well as "sneaker" and "boot".
Relevance defines the fields ElasticSearch will consider during a search as well as the relevance the have. Additionaly you can modify how ElasticSearch handles those fields.
name
, name.german_analyzer
and name.raw
. The suffix indicates,
how ElasticSearch handles the field: name
might have some special characters removed, name.german_analyzer
will
apply some optimizations for german language, name.raw
does not have any optimizations. In addition to that
there are special fields you should consider: attributes.enterprise.product_suggestion
will split compound words
such as "skyscraper" into separate words such as "sky" and "scraper". This is especially useful for language like e.g. german.
Also there is attributes.enterprise.product_suggestion_compound
which will search the ngram index and also match "skyscraper"
for searches like "ysc". As this might massively lower the quality of the suggestions, we usually recommend to not use
this field, if it can be avoided.Auto
: Automatically determine the value depending on the length of the search string. Usually: 0 for 1-2 characters, 1
for 3-5 characters and 2 for anything longer then that.None
: No correction of lettersOne
: One letter will be correctedTwo
: Two letters are correctedThree
: Three letters are correctedAND
will only match, if all search terms occur in the field,
OR
matches, once one search term can be found in the field. AND
is less likely - and therefor usually will get a higher
boosting than OR
. E.g. By defining a higher rating for AND
, a customer searching for "sky scraper" will first see
"sky scraper" and then "skyway" or "whisky".Default
will apply the default mechanisms of ElasticSearch, phrase
will
force a whole word to match. Phrase prefix
will allow to match a word, even if just the beginning matches, e.g. "skyscraper" for "sky".phrase prefix
. Defines how many letters may follow after the beginning of the
word and still are considered a match. Searching "sky" will only match "skyscraper", if maximum expansion is at least 7
(the number of letters in "scraper").Generally you will always need multiple relevance definitions for several fields. Think of the relevance definitions as usage scenarios:
field: name, operator: and, relevance: 100
field: name, operator: or, relevance: 90
field: attributes.enterprise.product_suggestion, relevance: 50
field: manufacturer.name, operator: or, relevance: 50, type: phrase_prefix
Usually this is the most relevant part when setting SES for a shop: Usually customers want both: Very precise and good rankings for products matching the term properly as well as fuzzy matches for less relevant searches.
Boost behaves similar to the relevance configuration. They allow to define additional boosts for products which meet certain criteria. This way you can configure, that a product is especially interesting, if it is e.g. a topsellet product.
true
. E.g. isTopSeller
or isNew
.By default SES will only allow you to choose from boolean product and attributes fields, as these can easily be checked
for their state. In future versions this might be extended to also support arbitrary fields and apply rules on them, such
as product.release_date < 2017/02/03
. Feel free to give us feedback, if this might be relevant for you.