Sharing a Cloud Organization Between Many Sitecore Environments

A Coveo organization can be shared between many Sitecore environments. Some basic concepts need to be considered when hosting more than one environment on a Cloud 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.

Connecting a Sitecore instance to a Cloud 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 (see Assigning a Farm Name to Coveo for Sitecore Resources). For example, using the value Production as a farm name will create two sources in the linked Cloud Organization, Coveo_master_index - Production and Coveo_web_index - Production.

A Cloud 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 Cloud 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 minimally 75 fields. These count towards your limit. Although this sounds 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 sources 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 Cloud 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 Cloud for each field defined in the fieldMap section of the Coveo Search Provider configuration file. 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 Cloud. Without the necessary precautions, all the environments will be rendered in the same dashboards, and all the events will be used by Machine Learning.