On-site searchEdit on GitHub
Search design patterns for ecommerce: schema Structure, data-driven ranking and more
By Dr. Martin Loetzsch, (Project A) and Krešimir Slugan (Contorion).
Providing users with a proper on-site search user experience is often one of the major technical challenges in building ecommerce websites. Although Elasticsearch is a fantastic search engine for the job, a lot of work needs to be done to adapt it to the specific business. This concept document introduces a few Elasticsearch design patterns around our notion of usage-driven schemas that will help you build a search for the folliwng purposes:
- A customer can easily find what they wants by clicking through the category tree and applying filters (faceted navigation) relevant products can be found through the following.
- A full-text search with more optional filters can be applied to narrow down the results.
- The right search results show up as suggestions when text is entered into the search box (completion).
- An alternative search result is shown when a term is misspelled (spell checking).
Furthermore, we will introduce a technique for sorting search results which ranks products that meet the following criteria higher:
- Most relevant for the search.
- Exhibit better past performance—for example, revenue, clicks, or click through rate.
- Exhibit better expected customer experience—for example, delivery speed, or product quality.
And finally, we will illustrate how to personalize search experience using the example of dynamic pricing and discuss some other best practices. The examples will come from Contorion, an online industrial and trade supply store that considers on-site search a major driver for its business.
All examples are from early 2015 and have proven to work in Elasticsearch 1.x. Some queries look different in Elasticsearch 5.x but the main concepts still hold true.
For submitting the form