Searches are an extremely important feature for most sites, as the first step of every user task is finding where to begin. A well-implemented text search generally does a good job when people know exactly what they want, but it’s much less effective if they don’t. To help these individuals, it’s best to start with the assumption that your users are human.
Computers love precision. So if you know the name of the product you need, almost any website will quickly retrieve it. But most people need a little more flexibility, and they often have only a broad idea of what they want. So what should your website do if the user can’t provide enough information to make a perfect match? The same thing a human would do: ask a question.
I need to buy a lamp. It needs to hang from the ceiling, be silver, with contemporary style to match the rest of my living room, and cost less than $200. If I went to a store, my conversation with a salesperson might look like this:
“I need a modern lamp.”
“Do you want a pendant, a sconce, or a floor lamp?”
“Bronze, Silver, Wood, or Brass?”
“How much are you looking to spend?”
“Two hundred dollars.”
“Okay, here’s five lamps that might work.”
Your website can do the same thing. Your users input a general search and receive a list of results. Alongside or above those results, your site can provide a set of categories (e.g., color) with options (e.g., bronze, silver, wood, brass) that allow users to refine their search by selecting the features important to them. You’ve probably used something similar. Web people call this a faceted search because users narrow their results by choosing specific attributes or facets. (See figure 1.)
But why wait until after the search returns results? Putting the categories and options into an interface with the search box, so users select the attributes they want before they search, is also a common tactic: generally, this is called an advanced search. Such features certainly look advanced, their interfaces bristling with checkboxes and dropdown menus, but they have three big problems.
To create a faceted search, you’ll first need to categorize the data (products or documents) by appropriate attributes. There’s an entire science for this kind of classification, called taxonomy, but the process doesn’t have to be intimidating or complicated. Content can be categorized by attributes already contained within your database, often called structured facets (for lamps, these could be designer, manufacturer, year designed, price, etc.) and by less well-defined attributes that would need to be assigned, known as unstructured facets (for lamps, these could be style, reviews, popularity, etc.). The best searches combine both types.
Next, you’ll need a well-designed interface. Generally these look similar, with categories presented beside or above the search results, but there are challenges that need to be addressed. Users will need to immediately understand what the categories and options represent, and how to manipulate them. And with the results and categories competing for space on the same page, an intelligent design will be necessary to avoid overwhelming the user.
Finally, you’ll need quality programming to ensure the results are retrieved quickly and to ensure the system is scalable to handle future content.
Not all sites require a faceted search and creating a good one does take a certain amount of work. But if your website returns an unmanageable number of results to broad or inexact search queries, you might want to consider a faceted system that is optimized for people instead of computers. Assuming, of course, that your users are human.