Drupal 7 status: There are no plans to port Faceted Search to Drupal 7. More info.
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.
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.
- Field Keyword Filter: Allows users to perform keyword searches restricted by field. Requires the Field Indexer module.
Hopefully, many more facets will be developed. The API is meant to make it easy to implement new facets.
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 or on a site with many thousand nodes (more info).
There are some issues in Drupal core that cause bugs in Faceted Search. To avoid these bugs, apply the recommended patches below. Add your constructive feedback to help get those bugs fixed in upcoming releases of Drupal:
- Recommended: patch to avoid the problem. : May cause inconsistent results in the guided search. Apply the
- Recommended: patch to solve the problem. : Causes empty result set when searching a field value of 0 (so far, this has been found to affect only CCK Facets). Apply the
- : May cause SQL errors (table does not exists) when uninstalling. Everything is cleaned up properly though.
- : Affects the results display in "extracts" mode.
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.
The following projects are designed to work with Faceted Search:
- CCK Facets: Exposes Content Construction Kit (CCK) fields as facets.
- Organic Groups Facets: Exposes organic groups as facets.
- Language Facet: Exposes the node language as a facet.
- Faceted ajax search: Search with the Faceted Search module without page reloads.
- Ranged Search for Faceted Search: Provides the ability to define ranges for facets.
- Faceted Search for Google Search Appliance: Provides a Google Search Appliance search engine for Faceted Search.
- Faceted Search Context: Allows to display extra information about the current search when using the Views integration.
You might also want to consider the following projects:
- Apache Solr Search Integration: A similar project based on the powerful Solr search engine. Read more about Faceted Search vs. ApacheSolr. Faceted searches are possible thanks to support for Facet API.
- Faceted Navigation for Search: provides faceted search to the core Search module. It is an implementation of the Facet API, so display widgets and custom code can be reused by other modules that also integrate with Facet API.
- Search API: A framework for creating searches on any entity known to Drupal, with a choice of backends, and using Views for filtering and displaying results.
- Taxonomy Facets: Taxonomy-based drill-down navigation.