How to achieve OR between Facet Values within the same Facet while ANDing Facet Values across different facets

Mar 25, 2015 at 3:11 PM
Hi, My team is trying to achieve a facet browsing experience similar to what is provided by Newegg and Amazon using Bobo (facet values with checkmarks).

What's not clear in the usage model to us is the notion of how a BrowseSelection can be used to drive the browsing experience such that when a BrowseSelection is applied (user checks a facet value) that the (unchecked) sibling facet values don't get eliminated from the resulting FacetMap and thus wiped from the UI.

For example: Given an index of music tracks (Track Name, Genre, Rating) without making any selections, Bob will return the following facets / values

Genre Facet:
Jazz (295)
Rock (1298)
Easy Listening (52)

Rating Facet:
1 Star (400)
2 Star (340)
3 Star (557)
4 Star (348)

Now if I apply a BrowseSelection for "Rock" to the "Genre" Facet, the resulting FacetMap contains:

Genre Facet:
Rock (1298)

Rating Facet:
1 Star (300)
2 Star (223)
3 Star (427)
4 Star (348)

Here's what we would like to show:
(notice how results are excluded from Rating based on Genre selection, but Genre values aren't trimmed)

Genre Facet:
Jazz (295)
Rock (1298) [checked]
Easy Listening (52)

Rating Facet:
1 Star (300)
2 Star (223)
3 Star (427)
4 Star (348)

The SelectionOperation property on the BrowseSelection seems important to achieving this but it only seems to apply to multi-value facets?

How would you achieve this?
Mar 25, 2015 at 3:26 PM
Aha, I answered my own question! Perhaps writing is cathartic after all!

As it turns out, I discovered the property on the FacetSpec class called ExpandSelection. It seems that this is set to false by default but when you set it to true voila! the desired result is achieved. Sibling facet values are not trimmed or constrained except as they would otherwise be by applying AND operators in conjunction with facet values from OTHER facets.
Marked as answer by Aaron_Murrell on 3/25/2015 at 7:26 AM