Coveo, Solr,  Lucene - Alpha Solutions

Learn more about the search platforms Coveo, Solr and Lucene and how they compare to each other and can be used for your Sitecore solution.

11.24.16

BY NIKET ASHESH

Should you use Coveo or Solr or just stick to Lucene? To answer this question, we need to first understand the platforms we are comparing.

WHAT IS COVEO?


  • Coveo is a provider of enterprise search and website search technologies, with integrated plug-ins for Salesforce, Sitecore CEP, and Microsoft Outlook and SharePoint. APIs also allow for custom integration with other applications.
  • Coveo for Sitecore is an integrated website search product to be used in conjunction with Sitecore’s Customer Experience Platform. The product enables the unified indexing of multiple repositories, contextual search, and search management via the Sitecore console.
  • Read more about Coveo.

WHAT IS SOLR?


  • SolrTM is a high performance search server built using Lucene Core, with XML/HTTP and JSON/Python/Ruby APIs, hit highlighting, faceted search, caching, replication, and a web admin interface.
  • Read more about Solr.

WHAT IS LUCENE?


  • Apache LuceneTM is a high-performance, full-featured text search engine library written entirely in Java. It is a technology suitable for nearly any application that requires full-text search, especially cross-platform.
  • Read more about Lucene.

Sitecore has always shipped with Lucene, which is a perfectly viable solution for some solutions. It’s free and does not have any additional infrastructure requirements. However, Lucene has limitations. Solr and Coveo solve these limitations and Sitecore’s search framework makes it easy to switch from one search provider to the other. Coveo and Solr are both used by some well-known businesses, and are very comparable in their offerings.

So the question still remains, which one to choose? Before I answer it, there are a few more things, I have learned over the years that you should know:

  • Sitecore’s native implementation of Lucene/Solr is extensively used to support a host of product features, such as analytics, content search, FXM, testing, Sitecore interfaces etc.

  • Sitecore does not ship with an interface for site search since each solution is unique. Sitecore Content Search API’s provide everything that is needed to build a site search.

  • Sitecore Content Search is built for Sitecore’s own search needs. While it provides APIs for building site search, development is needed.

  • Coveo for Sitecore is designed for customer facing website search. While it is capable of taking over all of Sitecore’s indexing and search needs, it requires a lot of work, complicates upgrades and may require an upgrade to your Coveo license.

  • When comparing Coveo with Lucene or Solr, we are really comparing Sitecore Content Search API’s with Coveo.

  • Because Sitecore allows separation of content from presentation, content is stored on multiple items; thus configuring full text search poses the same challenges no matter which tool you choose.

  • Both tools have good support for scalability – splitting index, multiple query servers etc.

  • One major difference is that in Coveo Indexing is always performed by one server, the Master server. However, in the case of SolrCloud indexing can be distributed.

  • While the UI part for Coveo is much easier, setting up search still requires some serious work.

  • There are solutions out there that deliver solutions for site search using Solr:

If you made it till here, I believe you would agree with me that there is no definitive answer to the question. It will depend on your requirements and some research.

If I were to sum up my findings, I’d say:

  • Use Lucene if you are running in CMS only mode on 1-2 content delivery servers and you do not have a lot of content.
  • Switch from Lucene to Solr if:
    • you have more than 50,000 items
    • you are using mongo DB
    • you have multiple content delivery servers
  • Use Coveo if you want to spin up site search quickly and want the enable search from multiple sources. But still keep Solr for Sitecore.