Advantages of Solr over Adobe CQ's / AEM's Lucene Integration

Since my first post yesterday on Solr / CQ integration, I've been receiving lots of feedback. Several people were interested in the advantages of CQ's built-in Lucene support over Solr. The following is an excerpt from my response to the Day Communique User Group

The advantages of using CQ’s built-in support over Solr are as follows (in my humble opinion). The general answer boils down to separation of concerns. Managing two platforms: one for content (CQ) and one for search (Solr) offers more flexibility.
1) Using an external search platform such as Solr allows you to scale your search infrastructure independently of CQ.  For example, SolrCloud offers many features around scalability and fault tolerance. CQ’s native integration does not provide this.
2) Using an external search platform allows you to include non-CQ content into your search results with out the need for importing your external content into CQ.
3) Solr is an enterprise search platform with advanced search capabilities. While Solr uses Lucene internally as its information retrieval library, Solr adds a nice layer on top of Lucene.
4) Since Solr is an independent platform, you may be able to keep up to date with the latest developments on Solr, without waiting for Adobe to provide updated search capabilities within CQ.

After I wrote the post above, I realized that there are a couple of other noteworthy benefits. 

  1. Most enterprise sites have multiple technology stacks that make up their site. Let's face it, as much as we love CQ, other technology platforms (eCommerce platforms, collaboration platforms, custom web applications, legacy integrations, etc.) are generally the constituent parts that realize the entire site. Using an independent search platform enables these other integration points to call Solr directly without going through CQ.
  2. While most companies don't change their content management platform too frequently, avoiding vendor lock-in is another reason to diversify your overall deployment stack.