Coveo for Sitecore 5 is now available!

Upgrading from July 2016 (4.0.290) to September 2016 (4.0.402)

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

This release of Coveo for Sitecore includes the Open-Source version of the JavaScript Search Framework. Due to the many changes brought by this version, you are strongly encouraged to revise your pages and components that rely on the Coveo JavaScript Framework.

This section describes how to upgrade Coveo for Sitecore 4.0 from the July 2016 to the September 2016 release.

Step 1 - Upgrade Coveo Services

  1. Upgrade Coveo Enterprise Search (CES) to the September 2016 release. For more details, see Upgrading CES.

  2. Upgrade Coveo Search API to the May 2016 release (8.0.1127). Follow the normal steps of the installation wizard.

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.0 (402).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 Search Provider Configuration File

Merging Your Modifications into the 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.0 (402).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 Search Provider Configuration File

Merging Your Modifications into the 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.

Modify Your Search Pages Without Tab Sections

There is a known issue with the new Coveo Search UI, where Coveo Search Pages without a tab section but with facets fail to load.

To learn how to quickly fix this issue, see Coveo Search Page Fails to Load After Upgrade.

Manually Modify the Mobile Search Components

The Coveo for Sitecore Javascript UI has been modified, leading the previous Mobile search component to become incomplete.

If you were relying on a copy of the CoveoSearchMobile.aspx or SearchViewMobile.cshtml for your mobile pages, you need to modify them.

The CoveoSearchMobile.aspx is by default located under <Sitecore instance>\Website\layouts\Coveo, and the SearchViewMobile.cshtml under <Sitecore instance>\Website\Views\Coveo.

Within the <div id="search"> element, add the following line.

data-enable-automatic-responsive-mode="false"

Manually Modify the Configuration Files

The following modifications detail what has changed between the July 2016 and September 2016 releases in the .example files.

Coveo.SearchProvider.config

In the pipelines node, after the getContentEditorWarnings pipeline, add the following element:

<startAnalytics>
  <!-- The ExcludeCoveoUserAgentProcessor stops the pipeline if the request comes from the Coveo user agent -->
  <processor patch:before="*[1]" type="Coveo.Analytics.Processors.ExcludeCoveoUserAgentProcessor, Coveo.Analytics" />
</startAnalytics>

In the delay in the requirementsInvalidateDelay node to 60.

<requirementsInvalidateDelay>60</requirementsInvalidateDelay>

 At the end of the conversionTypes node, add the following conversion types:

<conversionType inputType="System.Single" type="Coveo.Framework.Conversion.FloatValueConverter, Coveo.Framework" />
<conversionType inputType="System.Decimal" type="Coveo.Framework.Conversion.DecimalValueConverter, Coveo.Framework" />
<conversionType inputType="System.Double" type="Coveo.Framework.Conversion.DoubleValueConverter, Coveo.Framework" />

Coveo.SearchProvider.Custom.config

Replace the log4net node with this one. Keep in mind that this section is commented by default.

<log4net>
  <appender name="CoveoLogger" type="log4net.Appender.RollingFileAppender, Sitecore.Logging">
    <file value="$(dataFolder)/logs/Coveo.Search" />
    <appendToFile value="true" />
    <rollingStyle value="Composite" />
    <datePattern value=".yyyyMMdd'.txt'" />
    <staticLogFileName value="false" />
    <maxSizeRollBackups value="20" />
    <maximumFileSize value="250MB" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%4t %d{ABSOLUTE} %l %-5p %m%n" />
    </layout>
  </appender>
  <logger name="Coveo" additivity="false">
    <level value="INFO" />
    <appender-ref ref="CoveoLogger" />
  </logger>
</log4net>

Coveo.UI.Controls.config

In the CoveoAnalyticsPipeline node, before the TrackAnalyticsEventProcessor processor, add the following two processors:

<processor mode="on" type="Coveo.SearchProvider.Processors.HandleErrorEventsProcessor, Coveo.SearchProviderBase" />
<processor mode="on" type="Coveo.SearchProvider.Processors.HandleEventsToIgnoreProcessor, Coveo.SearchProviderBase" />

SwitchMasterToWeb.Coveo.config

Under the sitecore/scheduling node, remove the following element:

<agent name="CoveoCleanUpAfterRebuild">
  <patch:delete />
</agent>