THIS IS ARCHIVED DOCUMENTATION

Upgrading from February 2019 to May 2019

For the best Coveo for Sitecore experience, always follow the Best Practices When Upgrading Coveo for Sitecore.

This section describes how to upgrade Coveo for Sitecore 4.1 from the February 2019 to the May 2019 release.

Step 1: Upgrade Coveo Services

  1. Ensure that you have the latest version of Coveo Enterprise Search (CES 7.0.9434.8). If necessary, proceed as follows:

    1. Install the September 2018 release of Coveo Enterprise Search 7.0 x64 (7.0.9434) for Sitecore.

    2. Install the hotfix for the September 2018 release of Coveo Enterprise Search (CES 7.0.9434.8).

    Although you may refer to Upgrading CES for general instructions on how to upgrade CES, you must use the Coveo for Sitecore specific installation files which can be downloaded on the Coveo for Sitecore Downloads page.

  2. Ensure that you have installed the August 2017 release of the Coveo Search API (8.0.1168).

Step 2: Upgrade Coveo for Sitecore

Ensure that the Microsoft MVC security update MS14-059 is installed on every Sitecore host in your environment.

If you’re using the Coveo Admin Service in secure mode, read this notice before installing the package.

In the Coveo.SearchProvider.config file, make sure that the AdminServiceUri value uses the same host name as the one specified in the certificate. If you’re using a different host name, such as localhost, you might get the error below when installing the package.

The remote certificate is invalid according to the validation procedure.
...
[WebException: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.]
...
[SecurityNegotiationException: Could not establish trust relationship for the SSL/TLS secure channel with authority 'localhost'.]
  1. Log into the Sitecore Desktop.

  2. Access the Installation Wizard (Sitecore Start Menu > Development Tools > Installation Wizard).

  3. Install the Coveo for Sitecore .zip package.

  4. When prompted to overwrite files, click Yes to all.

  5. When prompted to overwrite items, select Overwrite, then click Apply to all.

    You might be prompted twice with this question. Select the Overwrite option and click Apply to all both times.

  6. Once the installation is completed, make sure that you restart both the Sitecore client and server.

Step 3: Manually Update the Coveo Configuration Files

The Coveo configuration files are located in the Website\App_Config\Include\Coveo folder. When upgrading, you must compare the changes to the .example files from your current Coveo for Sitecore version with the ones in the build you’re upgrading to. Then, you can merge these changes into your current configuration files. This method allows you to keep your own customization intact, while still benefiting from the latest enhancements brought in the product. You can use a merge tool such as WinMerge to accomplish this.

In further detail, here are the modifications that you must perform to the configuration files resulting from the feature changes between the previous and current Coveo for Sitecore releases:

Coveo.Authentication.config

The modification below only pertains to Sitecore 9.1 instances.

The following line:

<site patch:before="*[1]" name="coveoapi" virtualFolder="/coveo" physicalFolder="/coveo" enableTracking="false" content="master" domain="sitecore" set:loginPage="$(loginPath)shell/SitecoreIdentityServer" />

has been changed to:

<site patch:before="*[1]" name="coveoapi" virtualFolder="/coveo" physicalFolder="/coveo" enableTracking="false" content="master" domain="sitecore" set:loginPage="$(loginPath)shell/SitecoreIdentityServer">
  <patch:attribute role:require="ContentDelivery" name="content">web</patch:attribute>
</site>

The modification below only pertains to Sitecore 9.1 instances.

The <site name="coveoapi" element has been moved to become the first child of the <sites> element. Comments regarding the <site name="coveoapi" and <site name="coveorest" elements have been changed accordingly.

When combined, the result of the two Sitecore 9.1 changes above on the <sites> element is the following:

<sites>
  <!-- The site coveoapi needs to be inserted as the first element, or before any other sites that have the coveoapi site as a child (for example, sites defined with virtualpath="/coveo*"). -->
  <site patch:before="*[1]" name="coveoapi" virtualFolder="/coveo" physicalFolder="/coveo" enableTracking="false" content="master" domain="sitecore" set:loginPage="$(loginPath)shell/SitecoreIdentityServer">
    <patch:attribute role:require="ContentDelivery" name="content">web</patch:attribute>
  </site>
  <!-- The site coveorest needs to be inserted before any other sites that have the coveorest site as a child (for example, sites defined with virtualpath="/coveo/rest*"). -->
  <site patch:before="*[1]" name="coveorest" virtualFolder="/coveo/rest" physicalFolder="/coveo/rest" enableTracking="false" database="web" domain="extranet" />
  <!-- The site coveoanalytics needs to be inserted before coveorest, as it requires analytics to be enabled. -->
  <!-- The coveoanalytics website database attribute value should match the published website database attribute value to allow Coveo Usage Analytics logging. -->
  <site patch:before="*[1]" name="coveoanalytics" virtualFolder="/coveo/rest/v6/analytics" enableTracking="true" database="web" domain="extranet" />
  <site patch:before="*[1]" name="coveo_website" virtualFolder="/sitecore modules/Web/Coveo" physicalFolder="/sitecore modules/Web/Coveo" rootPath="/sitecore/content" startItem="/home" language="en" content="web" domain="sitecore" loginPage="/identity/login/admin/SitecoreIdentityServer" />
</sites>

The modification below only pertains to Sitecore 9.1 instances.

The following block has been added inside the <sitecore> element.

<settings>
  <setting name="Coveo.Framework.DatabasePropertyName" value="web" />
</settings>

The modification below pertains to all Sitecore versions except Sitecore 9.1.

The comment line regarding the <site name="coveorest" element has been changed from:

<!-- The site coveorest needs to be inserted as the first element, or before any other sites that have the coveorest site as a child (for example, sites defined with virtualpath="/"). -->

to:

<!-- The site coveorest needs to be inserted as the first element, or before any other sites that have the coveorest site as a child (for example, sites defined with virtualpath="/coveo/rest*"). -->

Coveo.SearchProvider.config

The modification below only pertains to Sitecore 9.1 instances.

The databasePropertyStore/Database element has been changed from

<Database>core</Database>

to

<Database>web</Database>

Step 4: Regenerate and Save your Encryption Key

Sitecore 9.1

For Sitecore 9.1 instances only, you must regenerate and save your encryption key in the web database and subsequently copy your new configurations across your instances (see Issues When the Core Database Is Disabled on Content Delivery Servers).

  1. On your CM, regenerate your API keys using the Command Center (see Changing Your Coveo Organization). Select the same organization than previously configured.

  2. Regenerate your Sitecore Credentials using the Security panel of the Command Center (see Modifying Your Security Settings). Re-enter the credentials, and click Apply and Restart.

  3. Copy the configuration files (see Deploying Coveo for Sitecore on the Content Delivery Servers - Copying the Configuration Files).

Step 1: Upgrade Coveo for Sitecore

Ensure that the Microsoft MVC security update MS14-059 is installed on every Sitecore host in your environment.

  1. Log into the Sitecore Desktop.

  2. Access the Installation Wizard (Sitecore Start Menu > Development Tools > Installation Wizard).

  3. Install the Coveo for Sitecore .zip package.

  4. When prompted to overwrite files, click Yes to all.

  5. When prompted to overwrite items, select Overwrite, then click Apply to all.

    You might be prompted twice with this question. Select the Overwrite option and click Apply to all both times.

  6. Once the installation is completed, make sure that you restart both the Sitecore client and server.

Step 2: Manually Update the Coveo Configuration Files

The Coveo configuration files are located in the Website\App_Config\Include\Coveo folder. When upgrading, you must compare the changes to the .example files from your current Coveo for Sitecore version with the ones in the build you’re upgrading to. Then, you can merge these changes into your current configuration files. This method allows you to keep your own customization intact, while still benefiting from the latest enhancements brought in the product. You can use a merge tool such as WinMerge to accomplish this.

In further detail, here are the modifications that you must perform to the configuration files resulting from the feature changes between the previous and current Coveo for Sitecore releases:

Coveo.Authentication.config

The modification below only pertains to Sitecore 9.1 instances.

The following line:

<site patch:before="*[1]" name="coveoapi" virtualFolder="/coveo" physicalFolder="/coveo" enableTracking="false" content="master" domain="sitecore" set:loginPage="$(loginPath)shell/SitecoreIdentityServer" />

has been changed to:

<site patch:before="*[1]" name="coveoapi" virtualFolder="/coveo" physicalFolder="/coveo" enableTracking="false" content="master" domain="sitecore" set:loginPage="$(loginPath)shell/SitecoreIdentityServer">
  <patch:attribute role:require="ContentDelivery" name="content">web</patch:attribute>
</site>

The modification below only pertains to Sitecore 9.1 instances.

The following block has been added inside the <sitecore> element.

<settings>
  <setting name="Coveo.Framework.DatabasePropertyName" value="web" />
</settings>

Coveo.SearchProvider.config

The modification below only pertains to Sitecore 9.1 instances.

The databasePropertyStore/Database element has been changed from

<Database>core</Database>

to

<Database>web</Database>

Step 3: Regenerate and Save your Encryption Key

Sitecore 9.1

For Sitecore 9.1 instances only, you must regenerate and save your encryption key in the web database and subsequently copy your new configurations across your instances (see Issues When the Core Database Is Disabled on Content Delivery Servers).

  1. On your CM, regenerate your API keys using the Command Center (see Changing Your Coveo Organization). Select the same organization than previously configured.

  2. Regenerate your Sitecore Credentials using the Security panel of the Command Center (see Modifying Your Security Settings). Re-enter the credentials, and click Apply and Restart.

  3. Copy the configuration files (see Deploying Coveo for Sitecore on the Content Delivery Servers - Copying the Configuration Files).

reenable