What is Faceted Search?

Faceted search (sometimes called “faceted browsing” or “faceted navigation”) is a way for users to filter search results by fielded data (the “facets”) that are related to the items in the search results. Faceted search allows users to narrow down their search results by selecting one or more facets to filter on.

For example, we have a client who sells drawer slides (the things on drawers that allow the drawers to slide in and out of a cabinet) via an ecommerce website. Users can navigate to see search results for the drawer slide section and can then filter their search results further using the faceted filters which are based on the characteristics of the drawer slides that are in the search results.

In the example graphic above, users have navigated to the “Medium Duty” category (see bread crumb navigation below) and now have 14 results. They can then filter their results further based on facets such as “Family”, “Brand”, “Load Class”, “Length”, etc. to narrow the search results set.

Then in this case, each product can have a number of different SKUs.  When user clicks on a product in the results set, for example the “8400” product, a detailed product view is displayed with a list of the related SKUs.  We’ve applied additional filters on this view to allow the user to narrow the SKUs by criteria such as “length”, “pack”, and “finish”:

details.png

How does it work?

The drawer slide product data and SKU data is stored within the website’s database.  In this case, we used Drupal CMS and we’ve created a product catalog that contains records for products and SKUs.  The product and SKU database records contain fields for the various product and SKU characteristics (the “Facets”) – such as “brand”, “load class”, “family”, “mounting”, etc.

Here is the admin user interface for the website where the administrator would manage the product-related data:

cms_view.png

The web server uses a search engine installed on it (in this case we used Apache Solr which is a popular open source search engine, but there are a number of search engines available both free and to license which contain faceted search functionality).  The search engine will periodically index the database and extract the data “facets” from the data structure and create a search index.  The website then connects to the search engine via an API and can display the facets as filters to the end user.  When the user clicks on a facet, the search results are then filtered based on the user’s selection enabling the user to quickly narrow their search results.

Facetted searching and browsing is a great way to put some powerful search and filtering capabilities at the fingertips of your users.  It works great for ecommerce websites but can be applied to almost any website or web application that presents a large amount of data to end users.