Coveo for Sitecore 5 is now available!

Upgrading From September 4.1.590.21 to October 4.1.729.23

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

This section describes how to upgrade Coveo for Sitecore 4.1 from the September 2018 to the October 2018 release.

Step 1 - Upgrade Coveo Services

  1. Ensure you have the latest version of Coveo Enterprise Search (CES 7.0.9434.1). If necessary, proceed as follows:
    1. Install the September 2018 Coveo Enterprise Search 7.0 x64 (9434) for Sitecore.
    2. Install the hotfix for the September 2018 release of Coveo Enterprise Search (CES 7.0.9434.1)

    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 you have installed the August 2017 Maintenance Release of the Coveo Search API (8.0.1168).

Step 2 - Upgrade Coveo for Sitecore

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

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

In the Coveo.SearchProvider.config file, make sure that the AdminServiceUri value uses the same hostname as the one specified in the certificate. If you are using a different hostname, 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. Upload and install the Coveo for Sitecore XX 4.1.729.23.zip package. You can find it in Downloads.
  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. Simply 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

Since upgrading Coveo for Sitecore modifies the Coveo Search Provider configuration files (Coveo.SearchProvider.config.example and Coveo.SearchProvider.Custom.config.example) with the latest fixes and enhancements, you need to manually merge these modifications into your current configuration files (Coveo.SearchProvider.config and Coveo.SearchProvider.Custom.config). 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 do that.

Step 1 - Upgrade Coveo for Sitecore

Please, 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. Upload and install the Coveo for Sitecore XX 4.1.729.23.zip package. You can find it in Downloads.
  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. Simply 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

Since upgrading Coveo for Sitecore modifies the Coveo Search Provider configuration files (Coveo.SearchProvider.config.example and Coveo.SearchProvider.Custom.config.example) with the latest fixes and enhancements, you need to manually merge these modifications into your current configuration files (Coveo.SearchProvider.config and Coveo.SearchProvider.Custom.config). 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 do that.

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.SearchProvider.config

The AddAnalyticsFieldsProcessor element has been moved up in the processor execution list and now sits ahead of the IncludeFieldsFromConfigOnlyProcessor element. This modification is required to resolve Issue SC-3200 when upgrading Coveo for Sitecore.

<!-- The AddComputedFieldsProcessor adds the computed fields to the search index. -->
<processor type="Coveo.AbstractLayer.Processors.Indexing.Fields.AddComputedFieldsProcessor, Coveo.AbstractLayer" />
<!-- The AddAnalyticsFieldsProcessor adds fields related to Sitecore Analytics to the search index. Those fields are used by the personalization features. -->
<processor type="Coveo.AbstractLayer.Processors.Indexing.Fields.AddAnalyticsFieldsProcessor, Coveo.AbstractLayer" />
<!-- The IncludeFieldsFromConfigOnlyProcessor adds the included fields to the search index. If at least one included field is specified, the processor stops the pipeline. -->
<processor type="Coveo.AbstractLayer.Processors.Indexing.Fields.IncludeFieldsFromConfigOnlyProcessor, Coveo.AbstractLayer" />
<!-- The AddCoveoFieldsProcessor adds specific Coveo fields to the search index. -->
<processor type="Coveo.AbstractLayer.Processors.Indexing.Fields.AddCoveoFieldsProcessor, Coveo.AbstractLayer" />
<!-- The AddTemplateFieldsProcessor gets the fields from a list of templates and then adds them to the search index.
     The processor invokes the coveoIndexingGetTemplates pipeline to retrieve the templates. -->
<processor type="Coveo.AbstractLayer.Processors.Indexing.Fields.AddTemplateFieldsProcessor, Coveo.AbstractLayer" />
<!-- The AddExternalFieldsProcessor adds the fields declared in the ExternalFields element to the search index. -->
<processor type="Coveo.AbstractLayer.Processors.Indexing.Fields.AddExternalFieldsProcessor, Coveo.AbstractLayer" />

Step 3 - Enable the FetchPageContent Processor

If you are indexing rendered HTML, you can switch from the HtmlContentInBodyWithRequestsProcessor processor to the new FetchPageContentProcessor processor as follows.

  1. Go to the Configuration section of the Command Center, accessible at http://[INSTANCE NAME]/coveo/command-center/index.html#configuration/.
  2. In the Configure options section, if the Index rendered HTML option is selected
    1. Select Only index Sitecore item data.
    2. Click Apply and Restart.
  3. In the Configure options section, select the Index rendered HTML option.
  4. Click Apply and Restart.

You should now see the following configuration in your App_Config\Include\Coveo\Coveo.SearchProvider.Custom.config file.

<coveoPostItemProcessingPipeline>
  <processor type="Coveo.SearchProvider.Processors.ExecuteGetBinaryDataPipeline, Coveo.SearchProviderBase" />
</coveoPostItemProcessingPipeline>
<coveoGetBinaryData>
  <processor type="Coveo.SearchProvider.Processors.FetchPageContentProcessor, Coveo.SearchProviderBase">
    <inboundFilter hint="list:AddInboundFilter">
      <itemsWithLayout type="Coveo.SearchProvider.Processors.FetchPageContent.Filters.ItemsWithLayout, Coveo.SearchProviderBase" />
    </inboundFilter>
    <preAuthentication hint="list:AddPreAuthenticator" />
    <postProcessing hint="list:AddPostProcessing">
      <processor type="Coveo.SearchProvider.Processors.FetchPageContent.PostProcessing.CleanHtml, Coveo.SearchProviderBase">
        <startComment>BEGIN NOINDEX</startComment>
        <endComment>END NOINDEX</endComment>
      </processor>
    </postProcessing>
  </processor>
</coveoGetBinaryData>

Step 4 - Migrating from Legacy Fields

Several legacy Coveo fields were removed as a result of issue SC-3166. If you are referencing any of these fields in your result templates or filter rules, you will need to make certain adjustments (see Field Is No Longer Indexed in the Sitecore Items).

Step 5 - Publish Your Site

In the Sitecore Content Editor, perform a publish site action. This ensures any changes related to Coveo components in the upgrade are published to the web database.

Step 4 - Enable the FetchPageContent Processor

If you are indexing rendered HTML, you can switch from the HtmlContentInBodyWithRequestsProcessor processor to the new FetchPageContentProcessor processor as follows.

  1. Go to the Configuration section of the Command Center, accessible at http://[INSTANCE NAME]/coveo/command-center/index.html#configuration/.
  2. In the Configure options section, if the Index rendered HTML option is selected
    1. Select Only index Sitecore item data.
    2. Click Apply and Restart.
  3. In the Configure options section, select the Index rendered HTML option.
  4. Click Apply and Restart.

You should now see the following configuration in your App_Config\Include\Coveo\Coveo.SearchProvider.Custom.config file.

<coveoPostItemProcessingPipeline>
  <processor type="Coveo.SearchProvider.Processors.ExecuteGetBinaryDataPipeline, Coveo.SearchProviderBase" />
</coveoPostItemProcessingPipeline>
<coveoGetBinaryData>
  <processor type="Coveo.SearchProvider.Processors.FetchPageContentProcessor, Coveo.SearchProviderBase">
    <inboundFilter hint="list:AddInboundFilter">
      <itemsWithLayout type="Coveo.SearchProvider.Processors.FetchPageContent.Filters.ItemsWithLayout, Coveo.SearchProviderBase" />
    </inboundFilter>
    <preAuthentication hint="list:AddPreAuthenticator" />
    <postProcessing hint="list:AddPostProcessing">
      <processor type="Coveo.SearchProvider.Processors.FetchPageContent.PostProcessing.CleanHtml, Coveo.SearchProviderBase">
        <startComment>BEGIN NOINDEX</startComment>
        <endComment>END NOINDEX</endComment>
      </processor>
    </postProcessing>
  </processor>
</coveoGetBinaryData>

Step 5 - Migrating from Legacy Fields

Several legacy Coveo fields were removed as a result of issue SC-3166. If you are referencing any of these fields in your result templates or filter rules, you will need to make certain adjustments (see Field Is No Longer Indexed in the Sitecore Items).

Step 6 - Publish Your Site

In the Sitecore Content Editor, perform a publish site action. This ensures any changes related to Coveo components in the upgrade are published to the web database.