On-Site SearchEdit on GitHub
Search design patterns for E-Commerce: schema Structure, data driven ranking & more
Providing users with a proper on-site search user experience is often one of the major technical challenges in building e-commerce 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. In this article, we will introduce a few Elasticsearch design patterns around our notion of usage-driven schemas that will help you to build a search so that:
- a customer can easily find what he wants by clicking through the category tree and applying filters (faceted navigation) relevant products can be found through
- a full-text search (with more optional filters 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 higher that:
- are most relevant for the search
- exhibit better past performance (revenue, clicks, click trough rate, etc.)
- exhibit better expected customer experience (delivery speed, 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 will look different in Elasticsearch 5.x but the main concepts still hold true.
For submitting the form