What is a Faceted search ?
Faceted search is the biggest thing that happened in the search world.
Even today, on many websites, a visitor is required to fill in some search form criteria. Before submitting the search form and getting results. Even on big WooCommerce websites.
This is a big show stopper, as many visitors will refuse to spend time clicking on check-boxes or drop-down lists, and leave the site. Statistics show that users don’t spend more than 3 seconds on any action. Let alone 10 seconds on a complicated search form.
Faceted search is solving this huge issue. It lets the visitor submit a search, and only then presents him with facets to filter further more the results. It requires literally no effort from the visitor, and decreases the bounce-rate.
Another advantage is that facets are relevant (contextual) to the search results. It means the filters appear only if they match some of the results shown. This prevents clicking on a filter and getting a “no results” answer.
Facets also extend the time spent on your website, by suggesting new filters to click on. The visitor often did not think of those facets before searching and is very likely to dig in. For instance, after searching for “Harry potter”, the facets could suggest “Novel”, or “Movie”, or “Child reading”.
Faceted search vs legacy search form
Let’s compare how a visitor of a pseudo retailer store handles a search.
With a classical search (total: 2 minutes, and a high chance of your visitor leaving without buying):
- (Keywords) Enter “skate board shoes” in the search box
- (Filter: set size) Select size “42”
- (Filter: set colour) Select colour “blue”
- (Filter: set brand) Select brand “Magnificus”
- (Search) Click on “Search” button
- (No results) The search page is empty
- (Filter: change colour) Select colour “red”
- (Search) Click on “Search” button
- (No results) The search page is empty
- (Filter: change brand) Select brand “Better Skater”
- (Search) Click on “Search” button
- (No results) The search page is empty
- (Filter: remove brand) Select brand “Any”
- (Search) Click on “Search” button
- (Results) The search page shows 124 shoes
- (Browsing) Browse among the first pages of results
- Add to basket and order
With a faceted search (total: 30 seconds):
- (Keywords) Enter “skate board shoes” in the search box
- (Results) 170 shoes are found
- (Filter: set size) Click on facet size “42”
- (Results) 60 shoes are found
- (Filter: set colour) Click on colour “blue”
- (Results) 23 shoes are found
- (Filter: set brand) Click on brand “Magnificus”
- (Results) 5 shoes are found
- Add to basket and order
But how do we generate the facets ?
Well, we use Apache Solr‘s natural capability to build and show dynamic facets from search results.
A traditional search solution like SQL can not sustain the amount of work necessary to parse all results and count the number of rows for each facet. Only an optimised index structure can tackle this problem on a large scale.
This is the reason why most search solution do not offer a faceted search at all, or can only do it for a few hundred or thousand of results.