Gravatar for

Question by jpalbuja, Oct 8, 2015 6:32 PM

Install Coveo with two separate set of Indexes per application

Hi everyone, I have a server that contains two Sitecore8 Applications running under the same IIS. The idea is to install Coveo in that server but create a Web and Master Coveo index only for application one, and another Master and Web Coveo appplication for application 2.

This is because app1 and app2 can contains different data and I want that each application uses their own indexes.

Can you advise if this is possible and how to do this?

I really appreciate it.

2 Replies
Gravatar for

Answer by Luc Bergeron, Oct 9, 2015 8:35 AM


When installing Sitecore, you have to type in an instance name. By default, Coveo for Sitecore uses this instance name to name the index resources accordingly (sources, indexing queues, field sets, security provider, user identity). So, it should just work OOTB.

If necessary, you can also use the SourceName index setting to force the name of the Coveo source for a specific Sitecore index. You will find more information in this topic:

I hope this helps

Gravatar for

Comment by jpalbuja, Oct 12, 2015 7:57 PM

Hi @lbergeron, I have 2 sitecore instances (In the same server), and I want that each instance have their own Coveo index. I want to install Coveo in that server and each sitecore instance have their own coveo indexes (No info shared between sites). For example one sitecore instance is dev and the other is QA, so the idea is that dev instance and QA have their own Coveo index under the same Coveo installation.

In other words I want to have Coveo with two cores, one core for dev and the other for QA.

Gravatar for

Comment by Luc Bergeron, Oct 13, 2015 8:47 AM

Hi @jpalbuja, The default behavior with Coveo for Sitecore is to use distinct "indexes" for the various Sitecore instances. Even if the two Sitecore instances are declaring "sitecoremasterindex", Coveo for Sitecore will ensure that the "index" names are unique in the Coveo installation. For example, the "index" name (we call it the "source name") will be "sitecoremasterindex - MyDevInstance" and "sitecoremasterindex - MyQAInstance" to avoid any conflict. That are the names you will see in Coveo's Admin Tool.

In addition, this topic explains how to connect the Sitecore instance to the Coveo installation (which is on another server):

This topic explains in detail Coveo's Admin Tool:

Regarding the Admin Tool, just keep in mind that, with Coveo for Sitecore, you don't have to create anything manually in the Admin Tool. Coveo for Sitecore takes care of it by itself. Making any manual change to the items created by Coveo for Sitecore will be eventually overwritten. However, the Admin Tool is still a powerful tool to explore the index content, browse securities, and troubleshoot issues.

I hope this helps

Gravatar for

Comment by jpalbuja, Oct 13, 2015 9:13 AM

Hi @Ibergeron, thanks so much for your response. So I guess that when I install Coveo for Sitecore Zip for the first Sitecore instance Dev, I can leave the default index location to C:\CES and when installing coveo for Sitecore for the sencond instance QA I ca leave the same index directory and Coveo for Sitecore is going to create a separate index in the same folder right?

Gravatar for

Comment by Luc Bergeron, Oct 13, 2015 9:31 AM

Yes, that's it. Just to make sure it is all clear, let me rephrase a bit. In Coveo's jargon, the "index" means the search index itself, which is the Coveo Enterprise Search service. There can be only one of these per server. The Coveo's index is composed of many sources which allows crawling many different systems (file servers, Exchange, Sitecore, etc.).

Since Coveo for Sitecore knows which sources belong to which Sitecore instance (Dev or QA), it can scope the search queries accordingly. It means that, depending on the context, it will retrieve the results that belong to the Sitecore instance.

Gravatar for

Comment by jpalbuja, Oct 14, 2015 6:52 PM

Thanks so much lbergeron!!! I really appreciate it.

Gravatar for

Answer by Sébastien Belzile, Oct 9, 2015 8:43 AM


I suppose you would like to share the data between both Sitecore instances. 2 scenarios here :


The recommanded setup when you want 2 Sitecore websites to share data is to have them on the same Sitecore instance. Sitecore is great for dealing with multiple web sites.

The easiest way to implement multiple sites in Sitecore is to have 3 nodes under the content item, two of them are the entry points of your websites, the third one will be for shared content.

You index everything in the same index and filter at query time. The rule editor has a rule "where the item is x or one of its sub-items".

If you are wondering about urls, the Sitecore link manager can help you with that. It can resolve urls in the context of the current site:


2 Sitecore instances both indexed with the same CES. You can query content from other sources with a proper CoveoSearch component configuration:

Gravatar for

Comment by jpalbuja, Oct 12, 2015 7:49 PM

Hi @sbelzile, actually I dont want to share the same Coveo data between both sitecoreapps. One Sitecore instance is Dev and the other is QA. So they are 2 Sitecore instances in the same IIS, and I want that each of those have thier own coveo index. That means that I need a Coveo installation with two cores, one core for dev and another core for QA. I am using the term core becouse I am really familiar with Solr. Thanks

Gravatar for

Comment by Sébastien Belzile, Oct 13, 2015 8:23 AM

Luc's answer is more appropriate then. You can configure the attribute source name on your indexes (in the file Coveo.SearchProvider.config), or the attribute collectionName (still in the same file). That way, in Coveo you could have:

Collection name: Collection "Sitecore for dev" with its sources and a collection "Sitecore for QA" with its sources,

Source name: source "CoveoMasterForDev", "CoveoWebForDev", CoveoMasterForQA, etc.

Your Sitecore instances will target the proper source automatically.

Ask a question