I’ve found that distinguishing between the overall concept of filtering and the specific technique of faceting is useful for evaluating and improving search.
Search Filtering is reducing a search result by removing result items that don’t match a certain criteria. For example, a user could filter a search by removing Excel files from results, or limiting shoes to size 7. In the simplest case, this is done by issuing another search specifying or disallowing the new requirement. This new search may or may not have any matches in the index, so it may lead to a dead end of a no results page.
Search Faceting is a specific type of filter: the system displaying relevant metadata sets about results items, such as file type or shoe size, and allowing users to choose among them.
As first defined by Marti Hearst in the Flamenco project, the classic faceted user interface includes the number of items that fit both the current search criteria and the value for the facet choice. This avoids leading users into “dead ends” of search results.
In search engines such as Solr, Elastic and SharePoint Search, the facets are pre-calculated by counting the common field values in the indexed items stored as document records. This avoids the overhead of additional searches, while including a long tail of unique indexed items. The Google Search Appliance will only create facets for the first thousand or so “most relevant” results items, and the Google Custom Search Engine will only filter by default, rather than facet.
Designing Faceted Search: Getting the basics right (part 2) by Tony Russell-Rose
Filters vs. Facets: Definitions NNGroup by Kathryn Whitenton