The module Sitecore Ecommerce Services offers a quite brilliant Search Framework. With this framework it is possible to build up a Query with a strongly typed model. This Query model could then be passed to an implementation of “ISearchProvider”, which uses a Lucene search or a Sitecore query search for example, and it returns a collection of items. This is quite brilliant, because it offers an abstraction layer for the several different ways to search the Sitecore database. This greatly enhances loosely coupled application design, because it enabled several (filter) controls to add filters to the Query model, without having to know which implementation is used to search the database.
The module harbors three implementation of searchproviders: Sitecore Query, Fast Query and Lucene. In this article I will show how this framework could be extended with a SOLR (Sitecore Search Solution) implementation. SOLR is a much more powerful searchprovider, because it enables facetted search. By adding an abstraction layer to the Sitecore Search Solution implementation, one also upholds the principles of modular, loosely coupled application design.