For the past 3 years I have done a lot of work with Coveo. Coveo is both easy and hard depending on which side of the equation you are on. You have to remember that Coveo isn’t just for Sitecore and that its a fairly complex piece of software with a lot of functionality.
It is easy to point fingers but the first thing you need to do is to do your due diligence, check and recheck and when all fails add a ticket. The folks I have worked with from Coveo are amazing, knowledgeable and helpful. Although I am sure I am not the most popular person at Coveo!
Now back to the post!! Coveo offers a lot of functionality, there are several things you can do to optimize the query speed and serve as many search queries as possible. There comes a time when one Coveo Master server is not enough, especially when you need a load balanced, patch-able and fault tolerant environment.
- Each Coveo server can perform about 25 queries per second (unofficial).
- The best thing you can do is to have a dedicated Coveo server on all your environments.
- Make sure that the CES folder is installed on a separate drive. You do not want the index/logs/rabbit queue files to grow and take up your OS drive causing your server to fail.
- Change your REST security key for each environment.
- Optimize your instance for Indexing or Querying.
- Increase the number of threads for conversion/indexing/querying based on your needs.
- Check your License (especially if you are using free version) to see how many mirrors you can run.
- If you are using the Free edition, I would suggest getting a support plan.
The free edition typically comes with one mirror in production and one mirror in non-production environments. Any additional mirrors are charged accordingly.
I would recommend at least two production Coveo mirrors to share the load of the incoming queries.
The setup for Coveo mirrors is pretty straight forward. For more information you can use this link: Installing CES Mirror Components. Make sure that the anti-virus software is disabled when you run the Coveo install.
Once the Mirror(s) install is done, you would then proceed to the Master Admin console to configure the mirror(s). Use the link: Adding a Mirror Server to configure the master to talk to the mirror(s). At this point, the documents the Master receives are seamlessly transferred to the mirror(s).
Configure your load balanced url to use the Mirror(s), following which you would modify the Coveo.SearchProvider.Rest.Config and point the <SearchApiUri> to the load balanced url.
You can use the CES Console to look at the activity on the Coveo Mirror. Remember the Coveo Mirror does not have any admin interface.
For more information on mirrors and scalability, read through:
Coveo Scalability Model
Configuring Coveo Servers in a Network Load-Balancing Cluster
About Mirror Servers
Scaling Coveo for Sitecore Over Multiple Servers
If you have any questions or comments please do not hesitate to reach out.