Responsive Facets with Apache Solr

Short Form


Capturing and converting the interest of your eCommerce customers requires putting the most relevant information before them as quickly as possible. Faceted navigation has become the most recognizable way to gather and organize product features within the eCommerce catalog. Apache Solr provides out of the box features to dig deep into your product set and organize data in a relevant manner.


Searching and browsing an eCommerce catalog requires more than simply presenting your customer with a result set. Your customer must be able to apply filters to dig into, and out of, the result set. With each filter your customer should get closer to the product they are looking for.

Facets are a popular way to allow customers to dissect and filter their search results. They often appear to the left, or below, the catalog search results. A facet is a way of breaking the results into categories based on the properties of the product. Common facets include price, color and size. Many times, the categories will have a number next to it indicating the number of products matching that criteria.

The use of traditional persistence models can result in poor performance when trying to produce faceted results for your customer. Fortunately, Apache Solr provides a very fast solution with faceting built into the product.

This presentation will focus on my experience improving my customer’s buying experience by implementing Apache Solr within an eCommerce platform. By feeding key product attributes into Solr, you can have Solr return search results broken into facets, including the count of matching products. Facets can be chained together as customers browse to created a sophisticated filter. We will dive into the approach Broadleaf Commerce chose to take to implement Solr using Java and SolrJ.

Our goal is to complete a sale by showing our customer the product they want.

Speaking experience

I speak at various user groups around Dallas.

I gave this presentation at the February Java MUG (Metroplex User Group) meeting. It was greatly received with very positive feedback and lively discussion.

Some of my presentation decks are available at


  • Brent Lemons



    Brent is an Architect with Credera. He has more than 14 years of software architecture and technology consulting experience. He started his career with Southwest Airlines, writing flight tracking and meteorological software. Prior to joining Credera, he was the CTO for a cloud based electronic medical records company. Much of his career has focused on Java based high transaction, computationally intensive application development. He has experience in the transportation, energy, travel and leisure and health care industries.