eZ Commerce comes with a very powerful search engine. The search engine is capable to provide one common search using product data and content.
Product data and content is indexed automatically using the build in search engine based on Solr.
The search displays the results in different groups. A group can consist products, videos, downloads, etc.
products in the search result
content in the search result
Facets can be grouped and the user can remove all facets of a group with one click:
Features of the search:
The search bases on the new Solr implementation of the CMS eZ Platform (introduced in version 5.4.5). eZ Commerce extends the features of the search implementation with special features required for product search.
It also comes with an extension plugin system which allows to index custom fields by Contenttype.
eZ Commerce provides a user friendly autosuggest feature:
A facet could be e.g. the color or a price range. Example:
Facet showing the manufactures
A facet is build dynamically based on the current search result.
Please keep in mind that search is really connected with a lot of different modules in our shop. Be sure to check these out:
The installation of the search engine is described in the chapter Installation
Search phrase: it is a text input provided by the user to perform the search query.
Facet: A defined filter to narrow the search. Every facet group acts like an AND and every individual facet can be configured as Single, Multi Or or Multi And.
Given this scenario:
Facet Category is a Multi_Or and has this options Category A, Category B.
Facet Colors is a Multi_AND and has this options Color Red and Color Silver.
Facet Watt is defined Single and has this option: 1000
Results elements = (Element has Category A OR Category B) AND (Element is Red AND Element is Silver) AND (Element has 1000 Watt)
Multi_And facets are good to handle elements with multiple features at the same time. Like an element that has 2 or more colors.
eZ Commerce is using the Solr recommended by eZ systems. You can follow the instruction from eZ or check chapter Installation
If you are using econtent as a storage engine 2 additional cores in Solr are required.
The shop is using the new searchengine ezplatform search.
There are 2 possibilities for facet design on search result page:
Please change configuration to your choice
There are 2 configurations that handle sorting on search pages:
siso_search.default.sort.preferred - define default sorting option per group
If there is a need for new sorting option then go to : Search - Cookbook#Cookbook-Howtoimplementnewsortingoptionforsearch
There are 3 parameters that can tweak the facet display
See : Search - Templates
Depending on chosen design layout we can configure pagination limit and default limit:
Synonyms is a very handy feature that allows different phrase input that have the same meaning.
You have products with gigabyte specification like a 250 gigabyte hard drive. But we cannot expect users to write gigabyte the same way we do, or even the correct way. So we can add synonyms for gigabyte:
gigabyte, giga byte, gb, Gb, gigab, gbyte and so on.
Now every time the user search for any of those gigabyte synonyms, the search engine will find also all the synonyms.
User search for: 1 gb
Search engine will return 1 gigabyte.
The synonyms are defined in file synonyms.txt which can be found inside Solr collection directory/conf
Please note that after changing synonyms.txt file you have to restart solar to make the changes take effect.
We recommend to use different cores for languages since some features such as stemming or synonyms might need a special configuration.
Currently the search querys are logged in a database table "ses_log_search" using the logger concept (see Logging Cookbook For Database Logging):
Example data from the table:
Please check the Solarium settings and add a setting for the econtent based search:
If you are using econtent as catalog data provider you can configure how Solr special characters are evaluated.
These are the current Solr special characters:
Every character listed above has a special function and required syntax in Solr if they are not escaped.
Here are some examples:
'-' not operator, when preceding a word token.
'+' operator, when preceding a word token implies an AND operator. The term after the + symbol definitely exists somewhere in the documents searched.
'*' wildcard operator when followed by or preceded by a word token. Use wildcards to look for spelling variations and alternate word endings.
() characters serve to group tokens with AND/OR operator. Search terms within parentheses are read first, then terms outside parentheses is read next.
" operator surrounding word tokens will cause the word tokens to be treated as is and as a phrase.
There is no special setting for the search regarding catalog segmentation. As soon as it is enabled for Econtent, it is also added to the search filters.
When eZ is used as dataprovider how can be avoided that during index time the shop has not a complete solr index?
It depends to the configuration. If Solr is configured to auto-commit, the index be removed. If no auto-commit is configured, the index will be removed as well, but it will not be effective and everything will be searchable until the commit at the end. No auto-commit, though, means also that changes in the administration will not be visible, since the process does not include a commit.
A simple solution would be to increase the auto-commit to a value, close to the needed time of the indexing process. But this is only applicable to set-ups with data, which do not take hours to index. Changes in the administration would, because of that, also be only visible after that amount of time.
Please check your solrconfig.xml of the respective Solr core and adjust the settings:
Currently when editor changes the Location Priority in the backend, this one is not automatically indexed in solr. Please check Recommended patches and the description of the issue (https://github.com/netgen/ezplatformsearch/issues/11)
The search is using a list of templates which can be overridden if required.
Find recipes in cookbook...