Search
Elasticsearch is a full-text search engine geared toward flexible and highly scalable indexing of text content. This service is fully supported by Aurora and allows the search features of Aurora to operate. It is to be the default service for all searching done in Aurora now, so should be deployed to all instances in place of Sphinx.
This article describes the service and how Aurora uses it.
Introduction
Elasticsearch (ES) is a full-text search engine geared toward flexible and highly scalable indexing of full text content. Aurora has an integration with Elasticsearch to provide a far more powerful and customisable search. When a visitor performs a search, it will run through the a custom defined set of fields in order to try and find a match. For example, you may set it search your product data against
- Product name
- Colour
- Brand
- Product reference
- Product description
- Product copy
- Product search terms
Within Aurora you are able to set preferences for what weight you wish to give each element, so you can rank your products accordingly.
ES is used by Aurora for all its Front-end searching capabilities, including but not limited to the:
- Product Search
- Quick-search
- Blog & Content Page search
It is also used to power the Aurora API's ProductSearch method.
Features
- Advanced spell checking, based on a dictionary composed of your products
- Redirects
- Replacements
- Synonyms
- Landing pages
- Stop words
- Fuzzy search
How To Configure ES On Your Store
This is not something that you are able to do yourselves and so you must contact your Digital Agency or Aurora Commerce Account Manager to have this enabled.
The process can take several weeks to plan and roll-out and so any intention to migrate across to ES (from Sphinx) should be communicated with plenty of notice.
ES is currently the default deployment service and so any new sites should already be using this service.
Stopwords and Synonyms
You can configure your stop words and synonyms using the Merchandising Search Settings for these two systems, as described here:
When using ElasticSearch, your synonyms are often applied before/regardless of your stop words. This means that if you setup a stop word of "test" and also a synonym of "test => testing", then a search for "test" might result in the returning of results for "testing".
You can avoid creating such situations in order to prevent possible confusion.
Fuzzy Search
We keep some fields indexed under the umbrella term "Fuzzy Search" that allows phrases to be searched in interesting ways.
Text shingles
A text shingle (or n-gram) is a small group of words that we can pick out from a piece of longer text. A unigram is a single word.
The Fuzzy Search analyzer will index shingles up to 4 words long that can then be searched by omitting the space. This even works with Stop Words.
The following shows example search terms and products that would be returned:
- Search for "Pizzastone" returns products with text "Pizza Stone"
- Search for "Bootlaces" returns products with text " Boot Laces"
- Search for "GuitarAmp" returns products with text "Guitar and Amp" (if "and" is a configured stop word)
Limitations
The Fuzzy Search analyzer does not work with Synonyms configured within Aurora.
FAQs
Where we refer to 'item' in the answer(s) below, this refers to anything that gets indexed into the search index, e.g. a Product or Blog Article.
Q. How often is the ES index updated? or How long should my changes take to appear in the ES index?
A. This can be a complex question to answer and so we have broken this down into the following bullet points to try to cover all indexing situations and clarify how long you should expect to wait for each of them:
- When adding a single item to Aurora that should appear in your searches, this change is usually instant and should appear as soon as the addition is confirmed by Aurora (either in the Aurora API response or on page load of the Addition Confirmation page).
- When updating/editing a single item in Aurora that should appear in your searches, this change is usually instant and should appear as soon as the update is confirmed by Aurora (either in the Aurora API response or on page load of the Update Confirmation page).
- When removing/deleting a single item in Aurora that should appear in your searches, this change is usually instant and should appear as soon as the deletion is confirmed by Aurora (either in the Aurora API response or on page load of the Delete Confirmation page).
- When performing any form of bulk process on items in Aurora that should appear in your searches, this change usually takes a short while to appear as large updates to the Search Indices are scheduled for re-indexing and processed over a period of a few minutes. Typically, this process should take no longer than 5-10 minutes, but can take as long as 20-30 minutes in the case of large or 'complete' data-set changes.
Updated almost 2 years ago