Faceted Search

David Lesieur - May 19, 2007 - 03:40

The Faceted Search module provides a search API and a search interface for allowing users to browse content in such a way that they can rapidly get acquainted with the scope and nature of the content, and never feel lost in the data. More than a search interface, this is an information navigation and discovery tool.

The interface exposes metadata in such a way that users can build their queries as they go, refining or expanding the current query, with results automatically reflecting the current query. This interface also combines free-text search, fully leveraging Drupal's search engine. It avoids complex search forms, and never offers facets that would lead to empty result sets.

The most obvious metadata for faceted searches is provided by Drupal's taxonomy module. However, Faceted Search's API allows developers to expose other metadata, therefore providing more facets to users for browsing content.

Why use Faceted Search?

Any of the following cases might prompt you to use Faceted Search:

  • Users need to filter content using multiple taxonomy terms at the same time.
  • Users want to combine text searches, taxonomy term filtering, and other search criteria.
  • Users don't know precisely what they can find on your site, or what to search for.
  • You want to hint users at related content they might not have thought of looking for, but that could be of interest to them.
  • You want to clearly show users what subject areas are the most comprehensive on your site.
  • You are trying to discover relationships or trends between contents.
  • Your site has too much content for it to be displayed through fixed navigational structures, but you still want it to be navigable.
  • You want to use a faceted classification because a single taxonomic order or a single folksonomy is not suitable or sufficient for your content.
  • Users often get empty result sets when searching your site.
  • You think that "advanced" search forms are not fun to use.

The package

Faceted Search is in fact a bundle of modules.

  • Faceted Search: Provides the search framework and API.
  • Faceted Search UI: Provides the search user interface.
  • Faceted Search Views: Allows to use Views to display the search results.
  • Author Facet: Allows users to refine the current search based on content author.
  • Content Type Facet: Allows users to refine the current search based on content type.
  • Date Authored Facet: Allows users to refine the current search based on content creation date.
  • Taxonomy Facets: Allows users to search content through taxonomy. Any vocabulary can become a facet that can be used to refine the current search.

Hopefully, many more facets will be developed. The API is meant to make it easy to implement new facets.

Current status

This module is undergoing development. The provided features and API might still change without warning.
Although this code uses some object-oriented programming, it is still compatible with PHP 4 at the moment.

Caution

Faceted Search is database-intensive. If your server can barely keep up with your traffic, this package will make things worst. Make sure to benchmark performance before deploying this system on a busy site.

Support

For support requests, bug reports, and feature requests, please use Faceted Search's issue queue.
For general discussions about Faceted Search (or other Drupal search solutions), you are invited to join the Search group.

Credits

Sponsored in part by Laboratoire NT2 and Eyos BV.
The superb Flamenco search interface has provided much inspiration for this project.

See also

Biblio Facets: Exposes Biblio's types and fields as facets.
CCK Facets: Exposes Content Construction Kit (CCK) fields as facets.
Organic Groups Facets: Exposes organic groups as facets.

Releases

Official releasesDateSizeLinksStatus
5.x-1.0-beta32008-Apr-2868.1 KBRecommended for 5.xThis is currently the recommended release for 5.x.
 
 

Drupal is a registered trademark of Dries Buytaert.