After using Coveo for Sitecore, I must say; as advertised, it is definitely easy to integrate and you can have a search page ready in no time. However, there are a few things I had to tweak, to get it to work perfectly. Some of which required updates to configuration, while the others required code.
In the next couple of blog posts I’ll try to compile everything I learned in the process and hope these posts will help you in your project.
Some of the topics I’ll cover are:
- Basic setup
- What is included? Does coveo replace Lucene/Solr?
- Computed and custom fields in Coveo
- Full text search
Alright, let’s get started. The first step is to download and install Coveo.
Installation is straightforward, here is all you need to know to get started:
- Install Coveo Enterprise Search (see Installing and Configuring Coveo Enterprise Search, ignore the license prompt)
- Install Coveo Search API
- Install Coveo for Sitecore
For additional information: Getting Started with Coveo for Sitecore
Query returns no results
- Test the urls defined in configuration files
- Use the Coveo Diagnostics page to identify the problem: Sitecore->Control Panel->Coveo->Diagnostics Page
- Ensure all the services are running
- Coveo Admin Service
- Coveo Enterprise Search
- Coveo API Service
- Open CES console and review the query. If the query result count is 0, copy the query and test it on the CES administration tool and see if it returns result.
- If the previous steps do not give you enough information to resolve the issue, verify that you are using Network Services as the user for Application Pool. If you cannot switch to Network Services, you’ll need to add a security impersonator to Coveo. This is required as the impersonator is used to execute queries. For more information read What Is an Impersonator? and Granting Impersonator Privileges
- Verify that the application secret key string defined in Sitecore is the same as defined in config.yml
<restEndpointConfiguration type="Coveo.Framework.Configuration.RestEndpointConfiguration, Coveo.Framework"> <ApplicationSecret>Copy the value from config.yml</ApplicationSecret> </restEndpointConfiguration>
Coveo service is inaccessible
- Verify that the Coveo Search API service and Coveo Admin service are running
- If you have updated the sitecore\admin user password, update the password in Coveo Coveo.SearchProvider.config. Note that the password is encrypted. To update the password, disable coveo configuration files, navigate to Sitecore control panel and use the “Coveo Configuration” option to update password.
Once you have updated the password, copy the encryption key from ($datafolder)\Coveo\ConfigurationEncryptionKeys along with the updated configuration files to all the machines where you have installed Sitecore Client installed
I’ll probably have to write a separate post just for troubleshooting tips. For now let’s move on to the next topic – what do we get with Coveo and what happens to the default Lucene or Solr for Sitecore.
There are two editions of Coveo for Sitecore, the “free edition” and the obvious paid “enterprise edition”. They are both feature packed. A few distinguishers are:
- User Interface – pre built easy to customize, fully componentized
- Relevance API – boosting and relevance can be configured from Sitecore’s editing interface
- Usage Analytics
- OOTB support for variety of documents and sources
For more information refer to Coveo for Sitecore
What about Lucene/Solr, do you still need it?
Yes, with the default Coveo installation you do.
Sitecore V8 introduces a lot of new indexes to drive the Federated Experience Manager, Social Modules, Automated Testing, etc. Coveo does not index this data, it indexes the Master and Web databases in its own set of indexes to drive its search pages.
Sitecore still uses it’s own set of Lucene/Solr indexes to run the other indexes : Core, Master, Web, Analytics, Tests, Marketing, FXM, Lists and Social.
Optionally, you can use Coveo to take over the indexing of the Core, Master and Web databases to handle search queries from the Content Editor environment. However, you will need a Lucene/Solr index to run the other indexes (Analytics, Tests, Marketing, FXM, Lists and Social).