Enhancing the search experience

10 mins

A simple, easy to find search experience for your customers is critical for you to optimise your ecommerce sales and conversions. If customers can’t find the products they’re looking for, it’s likely they’ll become frustrated and leave your website for a competitor. 

Research around the state of Ecommerce Search has been conducted by the World Leading Research Consultancy NNG Group. Their findings were that ecommerce sites return more relevant results than in the past, and rely on autosuggestions and facets to guide the users through the search as opposed to complicated technical search queries used in the past. Though there are some key challenges which still need to be addressed for search:

  1. Search boxes are unnecessarily difficult to find:

  • Desktop - hiding behind a small magnifying glass icon

  • Mobile - hidden behind a small hamburger menu

  1. Lack of support for typos, errors or common keyword synonyms

  2. Results being presented in different ways (pagination, filtering, sorting)

  3. Poorly populated filters (irrelevant facets, poor functionality, empty results) 

In this article, we will look at best-in-class SAAS search solutions such as Klevu and how we can implement ElasticSearch and gain similar features and benefits in order to gain a great search experience. This is especially important for companies wanting to ‘own’ their technology versus having an operational expense of a SAAS platform.

Klevu is strong choice in a number of core areas:

Machine learning and NLP

Klevu is focused on natural language processing (NLP) and machine learning by optimising results based on sales and clicks. 

ElasticSearch has a similar feature:

Data Driven Rankings

By pre-sorting a list of normalized scores at a per product level at import time we’re able to assemble a score which allows us to optimize our catalogue for search. We could take into account the following variables to create a score:

  • The number of products sold in the last three months

  • The number of product detail page impressions in the last three months

  • The conversion rate of the product in the last three months

  • The quality of the product data (descriptions, images, etc.)

  • How fast we expect the product to be delivered

  • 1 if on stock, 0.001 if not, used to push out-of-stock products towards the end of the search results

 As we can see here Elasticsearch gives us the ability to create a bespoke linear regression model which would be specific for a particular business model. For example, if a distributor started selling its own brand - they could create a higher weighting allowing them to optimize sales for their business strategy via the search customer journey.

Instant Faceted Search (Faceted Navigation)

B2B customers are often looking for specific products which they would want to find by filtering down within a few clicks. Klevu solves this problem by providing filters such as attributes, price ranges and so on, via a structural UI for search results. 

Wayfair - faceted search page

In order to support faceted navigation, ElasticSearch shows the attributes of the previous result as a filter, which can then be used to narrow down the results. In the above example, a user clicked through to the “chandelier” category and then further filtered the results for products with a “Black” exterior and a fixture design with “Sputnik” style. 190 products were found, and the filter on the left lists the attributes that are contained in the search result.

At a technical level this is  a simple but powerful concept of aggregations. One of the nice features of aggregations is that they can be nested, so you’re able to define top-level aggregations which create “buckets” of documents and other aggregations that are executed inside those buckets on a subset of documents. This is similar to the SQL GROUP_BY command (but more powerful. Nested aggregations are similar to SQL grouping but with multiple column names in the GROUP BY part of the query. 

At Hamari, we implemented this within Pimcore and was rolled out as part of a recent Pimcore upgrade. 

Customisable Javascript Overlay/autocomplete Feature

The autocomplete feature uses natural languages processing to help you find products you may be looking for.  The implementation of this, is offered by Klevu offers default overlay templates, which can be customized via CSS directly and a drag and drop feature which can implement the Javascript changes for you. The default layouts include a grid view option with filtering in the overlay or a list view layout. Below is an example of Toolstop implementing a list view layout which is cleaner and faster in our opinion. 


This isn’t an out of the box feature which is configurable within Elastic search - this would require some custom javascript development on the front end. Though there are some features within elastic search that will help you accomplish the autocomplete feature. The Elasticsearch API offers a completion suggester, which is a navigational feature.  The suggester will only suggest fixed terms which are saved to the ES index. Therefore it worth indexing all terms related to the item, including category names, facet values, brands, and other categorical terms.

Search Reporting

Klevu gives us access to search reporting out of the box over these areas:

  • Product clicks

  • Keyword usage

  • Conversions by product keywords

  • Geographic data 

  • Keywords with no results/Error queries

ElasticSearch has an open source front end application that sits on top of Elasticsearch called Kibana providing search and data visualisation capabilities. We are able to measure things like:

  • Search volume

  • Click volume

  • Top queries

  • Content source click

  • Queries by group

  • Top Zero result queries

As you can see here even though Klevu has some great reporting features. ElasticSearch is totally flexible and will allow you to create all sorts of reporting features. Which could be extended beyond the capabilities offered by Klevu.


Simple Selling Suggestions

Elastic search search offers a feature which provides the user with an alternative search term when there is a zero result to a query. ElasticSearch has a highly configurable term-suggester which allows suggestions based on the edit distance between indexed terms and search terms. So depending on how restrictive you would like the suggester to be, it can provide alternative products. Klevu on other hand goes a step further and offers personalized product recommendations when a user searches for something and gets no results back.  


Klevu offers a full featured search product for ecommerce designed to optimize your conversions. It has the ability to integrate into Magento and other ecommerce software. However, it comes with an on-going overhead. On the other hand ElasticSearch, offers a number of features which allows you to build a similar feature set. This will require an initial investment up front tho this will be something your business owns.


Book a consultation

We'd love to have a chat with you about any upcoming projects.
Book a 30 mins consultation, or for general enquiries feel free to email.