Saturday, 11 March 2017

Error after installing Coveo in to a Solr based Sitecore Instance

This quick post provides a fix for an error you might encounter after installing the Coveo for Sitecore package. It occurs when the Sitecore instance in question uses Solr as it's 'main' indexing engine. I got the problem with Coveo for Sitecore 80 4.0 (780), but I imagine it affects other releases too.

The Problem

You get the following error immediately after installing the Coveo for Sitecore package:

Could not get object from factory: remoteListFactory. Object id: contentSearch/indexConfigurations/defaultLuceneIndexConfiguration//exclude[@hint='list:ExcludeField'] (method: Sitecore.Configuration.Factory.CreateObject(XmlNode configNode, String[] parameters, Boolean assert, IFactoryHelper helper)). 

Coveo assumes that you're using Lucene as you're default indexing engine, and it references the defaultLuceneIndexConfiguration configuration node. If you're using Solr, then it's likely that you don't have that node, but instead have its Solr equivalent - defaultSolrIndexConfiguration.

The Solution

You could go into the Coveo.SearchProvider.config file and change the offending line directly. But you should probably follow Sitecore and Coveo's good practice guidelines and use a patch.

Add the following XML snippet to the defaultIndexConfiguration node of Coveo.SearchProvider.Custom.config

This will change the configuration to reference the correct Solr node instead of the Lucene one.