Catalog and Search

Broadleaf provides a very powerful catalog complete with category browsing and product searching. The awesome Solr project backs our product index and facilitates browsing/searching along with faceted filtering, pagination, and sorting. This section contains an overview of the relevant parts of catalog browsing and searching. With the community version of Broadleaf, Site (customer facing site) is the only part of Broadleaf that uses or interacts with Solr. By defaul, the Admin application does not interact with Solr (as with most things in Broadleaf you can change or customize this). In the Enterprise version of Broadleaf, the Admin interacts with Solr by default, especially to provide near real time updates to Solr when catalog changes are published via the Admin.

It is important to understand that Solr is a very powerful search appliance with a great deal of functionality and configuration options. Solr allows for an embedded search engine, which is what Broadleaf provides and uses out of the box with the Demo Site application. While it is not necessary to understand Solr to get Broadleaf running in a development or default environment, yet, in order to use the more advanced features or runtime configurations of Solr, you should consult the Solr documentation and become familiar with it. All of the possible configuration and runtime options of Solr are beyond the scope of this documentation. However, we will provide some basic explanations of the various options and talk, specifically, about things that are especially important to the function of Broadleaf.

In all cases, Solr requires a schema.xml file to indicate how data should be stored and indexed. Broadleaf provides one at site/src/main/resources/schema.xml. This should be copied and used when setting up non-embedded Solr environments as it has concrete fields defined such as productId. You can add fields to it, but you should not change existing field names. There is also a solrconfig.xml file that Solr requires. The default configuration is generally fine; however, Broadleaf provides a lean version of this as well for use in embedded mode (located at site/src/main/resources/solrconfig.xml). It can be copied and used outside of embedded mode, or you can use the version provided by the Solr distribution that you are installing. More on these files and the setup of Solr in the various sections of Solr Deployment Models.