(more brainstorming on this topic can be found in this thread)
From a super high level, here are my thoughts on how complex multifaceted search could work (also called metadata search, guided navigation, browse and search, etc for anyone searching for this).
We add suggestable metadata as part of the product schema, so we could have something like
<add> <doc> <field name='id">12345</field> <field name="author_first_letter" suggestable="1">S</field> <field name="author" suggestable="1" preceding="author_first_letter">Smith</field> <field name="price_range" suggestable="1">0-25</field> <field name="price">14.23</field> <field name="name">Some Crazy Legal Book</field> </doc> </add>
some of those fields would obviously have to be custom added to the schema, but that is a 5 minute deal.
Lets say a search happens and our book happens to be in the result set along with 1000 other books. Based on our index, we can scan the resultset and see that the results have three suggestable fields, two of which do not require a preceding field.
We return a list of the attributes and their distinct values for author_first_letter and price_range.
If author_first_letter is specified as S in the next step of the search, then we offer the author attribute and the distinct values of author where author_first_letter = S.
If price_range 0-25 is selected, then we don't show price in the metatdata list, since it is not suggestable. We do show the author_first_letter field again though.
If we expand the idea of preceding to hold a coma separated list of necessary preceding fields, then any search manager anywhere should have the flexibility he/she needs to custom tailer the browsing experience based on multiple variables. At the same time, the default functionality (no preceding fields mentioned) should meet the requirements of the multifacted search propsed in the TODO.