It appears you already have a preference for the master pattern of what is called faceted search (also called faceted navigation or guided navigation).
Faceted search addresses the universal need to narrow. The infrastructure for faceted search enables a tighter relationship between search and browse, allowing real-time refinement of the results set.
It's focus is on the discriminatory power to clarify intent and refine results following the initial query, which offsets the need for up-front personalization, advanced search, or parametric search.
Instead of thinking about a specific number of levels ~ think about your search as using adaptive facets:
- Broad, limited facets after the initial search query. (In most instances, this is limited to the top four or five most heavily populated values.)
- Rich facets upon selecting a category (There may be an abundance.)
Regarding your magic number...unfortunately there isn't a silver bullet for all taxonomies.
You must consider the size of your results set in order to determine the necessary granularity. A massive results set benefits from the ability to highlight the data structure and draw users into filtering.
As shown below, adaptive facets allow the controls to conform to the content as users shift between categories and drills down within collections.
Adaptive facets are also necessary for handling a live update of a results set, as shown in the following Volkswagen example.