Hi
Ok granted the title is a bit vague, let me explain what i'm trying to do.
Currently one of the ecommerce sites we deal with has a product list with filter options, which is quote ubiquitous these days. The filter options include, category, brand (manufacturer) and color. Click on a filter option (lets say a category) will filter the products shown in the list. It will also update the filter options. So in this example, if I select category A, products in category A will be shown and only brands that have products in category A will be visible in the filter list, any others would be removed from the filter options. Also, the number of products for each filter option is displayed/updated next to each visible filter option. More than one option (e.g. brand or category) can be selected.
As you can see there are filter options on left (style, brand, colour and price range). When you select for example a style (click on belts) you notice that some of the other options are disabled. In our case we hide them so the user doesn't have to scroll the list to see what is available (but that isn't the point, unless they can be excluded somehow).
Currently we are using a combination of database (mssql) and lucene however its cumbersome. Has anyone dealt with this scenario with ravendb? Is it possible (i'm thinking it probably is with map/reduce - but my knowledge and experience with it is limited)? Would it be possible with a single query (I want to reduce the db calls and index queries to optimize performance of this page)?
Thanks
Sean