Share a Cloud Organization Between Many Sitecore Environments

A Coveo organization can be shared between many Sitecore environments as the Coveo for Sitecore activating phase allows you to connect to an existing organization you’ve been given access to (see Configuration and Activation Options).

Some basic concepts need to be considered when hosting more than one environment in a Coveo organization since each Sitecore environment will require a set of technical resources.

Basic Setup

A Sitecore environment is called a farm. A farm can be as simple as a local installation of Sitecore on a developer computer, or as complex as a scaled setup, with many content delivery and content management servers (see Scaling Guide).

sharing cloud organization indexing

Connecting a Sitecore instance to a Coveo organization generates a source for each Sitecore database you index in that instance. You can easily identify the farm associated with a source since the farm name is included in the source name.

Important

By default, Coveo for Sitecore sources are named Coveo_master_index - <FARM_NAME> and Coveo_web_index - <FARM_NAME> in your Coveo organization. As a result, if multiple Sitecore instances use the same farm name and are linked to the same Coveo organization, their items are indexed in the same sources.

This is rarely useful in a development scenario, but a leading practice in a scaled production environment.

Multiple developers shouldn’t link their instances to the same Coveo organization and use the same farm name. With this setup, a rebuild in one Sitecore instance deletes all items in your Coveo for Sitecore sources that come from the other linked Sitecore instances. Instead, each developer should use their own trial or test Coveo organization.

In a scaled production environment, where multiple Content Management (CM) servers share the same databases, using the same farm name across all CMs and CDs is ideal. This ensures all CMs and CDs pull results from the same public website-related Coveo source (for example, a Coveo_pub_index - <FARM_NAME> source).

A Coveo organization is entitled certain features defined in the contract. Each farm will potentially consume some of those features. Here is a list of the most common features to consider when sharing a Coveo organization:

  • Each farm will use at least two sources, usually web and master. These count towards your limit.

  • If the fields are shared across all sources, each farm will use a minimum of 75 fields. These count towards your limit. Although the fields limit may seem hard to reach, mapping all the Sitecore fields and making them unique per source can make the count increase dramatically.

  • Each source will host indexed items. All the items from every source will be counted toward the allowed items limit defined in the contract.

  • Each environment will send queries to Coveo. All these queries count towards the Query Per Month limit defined in the contract.

  • Other technical limits, such as throttling at indexing time, could affect your environments if you trigger simultaneous rebuilds across many environments. Consequently, many non-production farms are recommended for large implementations.

Advanced Sharing Concepts

Sharing a Coveo organization between environments will cause some key components to be reused across all the connected environments. Understanding how the components are shared will help mitigate the risk of unwanted effects since a change made by one developer may influence all the other environments.

Sharing Fields

By default, Coveo for Sitecore will create a single field in Coveo for each field defined in the fieldMap section of the Coveo.SearchProvider.config file (see About Sitecore, Coveo for Sitecore, and Coveo Fields). Changing the type (Single-Line Text, Multi-Line Text, Number, Etc.) of a field in the configuration of one environment without changing it in all the environments will create issues.

Fields can be made unique for each environment to mitigate this risk (see Handling Duplicate Field Names Between Indexes).

Sharing Query Pipelines

Each query goes through a Query Pipeline to be refined. As there are many features located in the Query Pipelines, it may be necessary to create many pipelines to avoid impacting all the environments when experimenting with Query Ranking expressions.

Most of the Coveo for Sitecore implementations are managing these features on the Search interface directly, so this step may be optional.

Sharing Usage Analytics and Machine Learning

By default, all the analytics captured by all the environments will be nearly indistinguishable in Coveo. Without the necessary precautions, all the environments will be rendered in the same dashboards, and all the events will be used by Machine Learning.