Faceted search is what you get by combining simple keyword search with a faceted classification scheme. You won’t find it in Google’s web search (except for one of the Google Labs projects, perhaps), but almost every enterprise search project I work on involves facets in one way or another.
Think of facets as properties or attributes of a document, or any physical object for that matter. A book has an author, a genre, a price, and a publishing date. These attributes may be correlated (books by Dan Brown are probably fictional, albeit some controversy), but they are in essence orthogonal and independent. You may predicts several properties of an object by knowing just one thing about it, but there is no strict hierarchical way of organizing objects in terms of facets.
The screenshot above shows a typical application of faceted search. When searching through Buzzilions’ directory of product reviews, you get to narrow your search by category, brand, price, and review date. Please read through this introduction to faceted search if you feel in need of a more thorough explanation.
As I said previously, almost every enterprise search projects I work on incorporate faceted search result navigation on structured metadata. And I have come to to realize that the interaction design for many of these faceted search applications is slightly faulty.
In a typically scenario, you only get to choose a single price range for products in the search result, a certain brand, or a single category, even though there are many relevant alternatives. If you want to explore several alternatives (eg. several price ranges), you are forced to select and unselect them all one after another. Same goes for brands and categories. Choosing just one facet value is fine when you’re looking for something known, and when the underlying classification scheme is well-defined and intuitive. For exploratory search, however, I believe multi-choice faceted search to be a better solution.
The act of forming new concepts by combining existing ones is called concept composition or concept combination (reference on Formal Concept Analysis (FCA) courtesy of Till C. Lech). I can form the concept “Cameras I Can Afford” by combining price ranges from $50 to $500, or the concept “Manufacturers I Trust” by combining the brands Canon and Nikon. Buzzilions can’t be expected to anticipate my need for these combined concepts, and they certainly can’t accommodate for all possible and unlikely combinations of all facet values upfront.
The best interaction design for exploratory faceted search applications (typically e-commerce) is to let the users create their own compounds. A very elegant solution, shown in the screenshots below, is to use checkboxes, by far the most conventional way to present multiple choices. For range navigators, such as price, it may also work to have the user type in from/to values in text fields.
Concept composition makes it easier to compare items belonging to different facet values. Putting Canon and Nikon cameras side by side makes it so much easier to compare their features, instead of having to jump back and forth between the two. It aligns with one of Jakob Nielsen’s 13 guidelines for tabs:
If people do need to compare the info behind different tabs, then having to switch back and forth puts an added burden on their short-term memory and lowers usability compared to a design that puts everything on one big page.
It’s well-understood that any single camera belongs to one price range only. Select more than one price range means that you get to see cameras priced $50-$200, as well as cameras priced $200-$500, with no overlap. However, imagine selecting “short lag time” and “bright LCD” from a list of characteristics. Will that bring you cameras satisfying both of these requirements, or just either one of them? Is it a logical AND between facet values, or a logical OR? Boolean search should be avoided since all experience shows that users cannot use it correctly. Decide upon a suitable underlying logic, and avoid unnecessary confusion.
If I have managed to keep you interested so far, here’s a summary of my views on concept composition in faceted search:
- Design for concept composition in exploratory search application, or if you anticipate a need to compare items across categories (typically e-commerce sites)
- Decide upon the most likely interpretation of concept relations for each facet (my guess is to prefer OR over AND in ambiguous cases)
- Choose a suitable interaction style for each facet (checkboxes for OR, links/radiobuttons for AND)
- Don’t confuse me with incomprehensible Boolean search logic