Coveo for Sitecore 4 to Coveo for Sitecore 5 Upgrade Procedure

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

Step 1 - Switch from On-Premises to Cloud Indexes

Coveo for Sitecore 5 requires a Cloud organization and it indexes your Sitecore content to the Coveo Cloud platform. If applicable, see Switching From On-Premises to Cloud Indexes for instructions on migrating your indexes.

If you are using an On-Premises version of Coveo for Sitecore and do not migrate to a Coveo Cloud organization now, the following error message will appear during the installation of Coveo for Sitecore 5:

This version of Coveo for Sitecore no longer supports Coveo Enterprise Search 7. The "Coveo.AbstractLayer.Communication.CES.CESCommunicationFactory" type has been deprecated. Remove it from your configuration files.

Step 2 - Upgrade to the October 2018 Release of Coveo for Sitecore 4.1

The October 2018 release is the minimum version of Coveo for Sitecore 4.1 you need in order to step up to Coveo for Sitecore 5.

If you are currently running the October 2018 or a post-October 2018 version of Coveo for Sitecore 4.1, you can proceed to Step 3- Upgrade to the Coveo for Hive Search Framework. Otherwise, follow the Best Practices When Upgrading Coveo for Sitecore to incrementally update your Coveo for Sitecore 4.0 or 4.1 version to the October 2018 release of Coveo for Sitecore 4.1.

Refer to the following sections for instructions on updating to the October 2018 release of Coveo for Sitecore 4.1.

Step 3 - Upgrade to the Coveo for Hive Search Framework

Coveo for Sitecore 5 is meant to be used with the Coveo for Hive Search Framework rather than the legacy components. Coveo for Sitecore 5 packages do not contain the legacy components, nor the Coveo JavaScript V1 Search Framework the legacy components reference.

For information on moving from the Legacy framework to the Coveo for Sitecore Hive Search Framework, see Upgrading to Coveo for Sitecore Hive Framework - FAQ.

Step 4 - Prepare Your Solution Code

All Coveo for Sitecore 4.1 obsolete APIs were removed in Coveo for Sitecore 5. To avoid runtime errors when or after upgrading to Coveo for Sitecore 5, it is recommended to ensure you are not using any obsolete APIs.

  1. Update your Visual Studio projects references to the October 2018 release assemblies.
  2. Ensure there are no #pragma warning instructions in your code that would disable obsolete warnings.
  3. Ensure there are no obsolete warnings when compiling.

Coveo for Sitecore 5 also removed the support for querying Coveo using LINQ code.

  1. Ensure you remove any LINQ code querying the Coveo indices.
  2. Replace this code with LINQ code querying the out-of-the-box Sitecore indices (Lucene, Solr, or Azure Search) or with Coveo for Sitecore Hive search interfaces.

If you had to change your code, deploy and test everything is working before going further.

Step 5 - Upgrade to Coveo for Sitecore 5

This section describes how to upgrade from the October 2018 (4.1.729.23) release of Coveo for Sitecore 4.1 to the November 2018 (5.0.74.10) release of Coveo for Sitecore 5.

  • Please, ensure that the Microsoft MVC security update MS14-059 is installed on every Sitecore host in your environment.
  • If you have not yet migrated to a Coveo Cloud organization, the following error message will appear during the installation of Coveo for Sitecore 5:

    This version of Coveo for Sitecore no longer supports Coveo Enterprise Search 7. The "Coveo.AbstractLayer.Communication.CES.CESCommunicationFactory" type has been deprecated. Remove it from your configuration files.
    

    See Step 1 - Switch from On-Premises to Cloud Indexes for instructions on migrating your indexes to Coveo Cloud.

  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 5.0.74.10. 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.

    On Sitecore instances with SXA, Sitecore SXA might throw errors at this point (see Sitecore SXA Throws Errors When Upgrading From Coveo for Sitecore 4.1 to Coveo for Sitecore 5).

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

The /sitecore/System/Modules/Coveo/ folder was included in Coveo for Sitecore 4 packages solely for the management of top results with On-Premises versions of Coveo for Sitecore. It is no longer required and should be deleted to avoid confusion.

To delete the /sitecore/System/Modules/Coveo/ folder

  1. In the Sitecore Content Editor, in the content tree, locate the /sitecore/System/Modules/Coveo/ folder.
  2. Right-click this Coveo folder and select Delete.
  3. In the warning dialog, click OK.

With Coveo Cloud, Top Results have been renamed Featured Results and are managed from the Query Pipelines (see Adding and Managing Query Pipeline Featured Results).

Step 7 - Delete Legacy Search UI Framework Items from the Sitecore Content Tree

Coveo for Sitecore 4.1 allowed the creation of Coveo search interfaces using both the Legacy Search UI Framework and the Coveo for Sitecore Hive Framework. Now that only Coveo Hive items can be used, you can lighten the Sitecore content tree considerably and avoid confusion by deleting Legacy Search UI Framework items.

The Sitecore Installation Wizard does not allow the removal of items from the content tree. This action must therefore be performed manually.

Deleting Items Created off of Base Coveo Items

If you have created items in Sitecore using Coveo Legacy UI base items (e.g. search pages, layouts, renderings), these items will not work in Coveo for Sitecore 5. You can therefore delete them through the Sitecore content tree.

Coveo Legacy UI and Coveo Hive items are located in separate folders in the Sitecore content tree. Coveo Hive items are usually located in folders named Coveo Hive, whereas folders named Coveo or CoveoModule contain Legacy UI items. You will notice numerous instances where a Sitecore content tree level shows sibling Coveo Legacy and Coveo Legacy folders, as in the screenshot below.

This screenshot also shows that the Template field value in the Quick Info may be used to identify if the item is based off of a Coveo Hive or Coveo Legacy item.

Deleting Coveo Base Items

  1. The following Coveo Legacy Search UI folders, their sub-items and item/sub-item links may be deleted from the Sitecore content tree.

    • /sitecore/Layout/Layouts/Coveo
    • /sitecore/Layout/Models/Coveo
    • /sitecore/Layout/Placeholder Settings/Coveo
    • /sitecore/Layout/Renderings/Coveo
    • /sitecore/Layout/Sublayouts/Coveo
    • /sitecore/Templates/CoveoModule

    Unlike the other Coveo folders, the /sitecore/Templates/CoveoModule folder cannot be deleted entirely in a single step. Templates that are based on others must be deleted first.

  2. You may also delete the items in the /sitecore/Media Library/Coveo folder, but do not delete the Page Events folder and its contents.

Step 8 - Delete Old Control Panel Controls

Many of the Coveo Search section options in Coveo for Sitecore 4.1 now redirect to the Coveo Command Center. However, the no longer used controls need to be deleted. In Sitecore 7 and 8 instances, the files to delete are located under [Your Sitecore Instance]\Website\sitecore modules\Shell\Coveo\. For Sitecore 9 instances, they are located under [Your Sitecore Instance]\sitecore modules\Shell\Coveo\.

Here are the files you need to delete:

ActionsDialog.xml
CleanupUnusedResourcesWizard.xml
CleanupUnusedResourcesWizardFormPage.xml
ConfigurationDialog.xml
ConfigurationWizardFormPage.css
ConfigureCoveoCloudOrganizationWizard.xml
ConfigureCoveoCloudOrganizationWizardFormPage.xml
ConfigureFarmNameWizard.xml
ConfigureFarmNameWizardFormPage.xml
ConnectToCoveoCloudWizardFormPage.xml
ConfigureSitecoreCredentialsWizard.xml
ConfigureSitecoreCredentialsWizardFormPage.xml
ReactivateDisabledSecurityEntitiesWizard.xml
ReactivateDisabledSecurityEntitiesWizardFormPage.xml
UpdateSecurityCacheWizard.xml
UpdateSecurityCacheWizardFormPage.xml
UpdateSecurityModelWizard.xml
UpdateSecurityModelWizardFormPage.xml
UpdateSpecificSecurityCacheConfirmationFormPage.xml
UpdateSpecificSecurityCacheWizard.xml
UpdateSpecificSecurityCacheWizardFormPage.xml

Step 9 - 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 are 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 October 2018 release of Coveo for Sitecore 4.1 and the November 2018 release of Coveo for Sitecore 5:

Coveo.SearchProvider.config

  1. The lines below, associated with the AddCoveoFieldsProcessor processor, have been removed. This processor is no longer required.

    <!-- The AddCoveoFieldsProcessor adds specific Coveo fields to the search index. -->
    <processor type="Coveo.AbstractLayer.Processors.Indexing.Fields.AddCoveoFieldsProcessor, Coveo.AbstractLayer" />
    
  2. If your App_Config\Include\Coveo folder contains the Coveo.SearchProvider.Fields.Custom.config file, this means Coveo has already recovered the fields that used to be indexed through the AddTemplateFieldsProcessor and they are now included through the IncludeFieldsFromConfigOnlyProcessor. The AddTemplateFieldsProcessor processor is therefore no longer required and you can remove the lines below from your configuration.

    <!-- 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" />
    

    If your App_Config\Include\Coveo folder does not contain the Coveo.SearchProvider.Fields.Custom.config file, steps will be provided further in the upgrade steps to move away from the traditional inclusion of fields through configuration file settings to the new and simpler method using the Command Center user interface.

  3. The following lines, associated with previously sys-prefixed fields, have been edited and moved from the <externalFields> element to the <fieldNames> element.

    <fieldType fieldName="attachmentparentid" isSourceSpecific="true" settingType="Coveo.Framework.Configuration.FieldConfiguration, Coveo.Framework" />
    <fieldType fieldName="author" isSourceSpecific="true" settingType="Coveo.Framework.Configuration.FieldConfiguration, Coveo.Framework" />
    <fieldType fieldName="clickableuri" isSourceSpecific="true" settingType="Coveo.Framework.Configuration.FieldConfiguration, Coveo.Framework" />
    <fieldType fieldName="collection" isSourceSpecific="true" settingType="Coveo.Framework.Configuration.FieldConfiguration, Coveo.Framework" />
    <fieldType fieldName="concepts" isSourceSpecific="true" settingType="Coveo.Framework.Configuration.FieldConfiguration, Coveo.Framework" />
    <fieldType fieldName="date" isSourceSpecific="true" settingType="Coveo.Framework.Configuration.FieldConfiguration, Coveo.Framework" />
    <fieldType fieldName="filetype" isSourceSpecific="true" settingType="Coveo.Framework.Configuration.FieldConfiguration, Coveo.Framework" />
    <fieldType fieldName="indexeddate" isSourceSpecific="true" settingType="Coveo.Framework.Configuration.FieldConfiguration, Coveo.Framework" />
    <fieldType fieldName="isattachment" isSourceSpecific="true" settingType="Coveo.Framework.Configuration.FieldConfiguration, Coveo.Framework" />
    <fieldType fieldName="language" isSourceSpecific="true" settingType="Coveo.Framework.Configuration.FieldConfiguration, Coveo.Framework" />
    <fieldType fieldName="printableuri" isSourceSpecific="true" settingType="Coveo.Framework.Configuration.FieldConfiguration, Coveo.Framework" />
    <fieldType fieldName="rowid" isSourceSpecific="true" settingType="Coveo.Framework.Configuration.FieldConfiguration, Coveo.Framework" />
    <fieldType fieldName="size" isSourceSpecific="true" settingType="Coveo.Framework.Configuration.FieldConfiguration, Coveo.Framework" />
    <fieldType fieldName="source" isSourceSpecific="true" settingType="Coveo.Framework.Configuration.FieldConfiguration, Coveo.Framework" />
    <fieldType fieldName="title" isSourceSpecific="true" settingType="Coveo.Framework.Configuration.FieldConfiguration, Coveo.Framework" />
    <fieldType fieldName="topparent" isSourceSpecific="true" settingType="Coveo.Framework.Configuration.FieldConfiguration, Coveo.Framework" />
    <fieldType fieldName="topparentid" isSourceSpecific="true" settingType="Coveo.Framework.Configuration.FieldConfiguration, Coveo.Framework" />
    <fieldType fieldName="transactionid" isSourceSpecific="true" settingType="Coveo.Framework.Configuration.FieldConfiguration, Coveo.Framework" />
    <fieldType fieldName="uri" isSourceSpecific="true" settingType="Coveo.Framework.Configuration.FieldConfiguration, Coveo.Framework" />
    <fieldType fieldName="urihash" isSourceSpecific="true" settingType="Coveo.Framework.Configuration.FieldConfiguration, Coveo.Framework" />
    

    Additionally, if you have created and are using custom Result Template .cshtml files, remove all sys prefixes from the field names in those files to ensure the new field names are referenced, as per the fieldName attribute values above. On the other hand, the default.cshtml Result Template file should be automatically modified during the upgrade and should therefore not require any modifications on your part.

  4. All of the following lines have been removed as they were only required for On-Premises instances of Coveo for Sitecore.

    <!-- The TopResultConfigurationWarningProcessor validates that a Top Result item is correctly configured -->
    <processor type="Coveo.SearchProvider.TopResults.TopResultConfigurationWarningProcessor, Coveo.SearchProviderBase" />
    
    <cesCommunicationFactory type="Coveo.AbstractLayer.Communication.CES.CESCommunicationFactory, Coveo.AbstractLayer">
    <cesCommunicationConfiguration type="Coveo.AbstractLayer.Communication.CES.CesCommunicationConfiguration, Coveo.AbstractLayer" />
    </cesCommunicationFactory>
    
    <!-- Coveo AdminService configuration -->
    <adminServiceConfiguration type="Coveo.Framework.Configuration.AdminServiceConfiguration, Coveo.Framework">
      <adminServiceUri>http://localhost/AdminService</adminServiceUri>
      <cesMasterInformation type="Coveo.Framework.Configuration.CesMasterInformation, Coveo.Framework">
        <cesConfigurationPath>C:\CES7\</cesConfigurationPath>
        <id>default</id>
        <acceptedConnections hint="list:AddAcceptedConnection">
          <cesAcceptedConnection type="Coveo.Framework.Configuration.CesAcceptedConnection, Coveo.Framework">
            <connectionComponent>ADMIN</connectionComponent>
            <connectionPort>52800</connectionPort>
            <connectionType>CMF</connectionType>
          </cesAcceptedConnection>
          <cesAcceptedConnection type="Coveo.Framework.Configuration.CesAcceptedConnection, Coveo.Framework">
            <connectionComponent>ADMIN</connectionComponent>
            <connectionPort>52810</connectionPort>
            <connectionType>HTTPS</connectionType>
          </cesAcceptedConnection>
        </acceptedConnections>
      </cesMasterInformation>
      <!-- The username element specifies the username used to connect to the AdminService. -->
      <username></username>
      <!-- The password element specifies the password used to connect to the AdminService. -->
      <password></password>
    </adminServiceConfiguration>
    
    <!-- Coveo search configuration -->
    <searchCertificatePath>C:\CES7\Config\Certificates\cert-iis.p12</searchCertificatePath>
    <searchServiceUri>https://localhost:52810/7.0/CoveoSearchService</searchServiceUri>
    <queueUri>amqp://localhost:5682/</queueUri>
    <queueUsername>guest</queueUsername>
    <encryptDataOnQueue>false</encryptDataOnQueue>
    
    <setting name="Coveo.TopResults.FolderPath" value="/sitecore/system/Modules/Coveo/Top Results" />
    

    For Sitecore 7 and 8 instances:

    <scheduling>
      <agent name="CoveoSynchronizeTopResults" type="Coveo.SearchProvider.Agents.SynchronizeTopResults, Coveo.SearchProviderBase" method="Run" interval="00:01:00">
        <DatabasesToSynchronize>master;web</DatabasesToSynchronize>
      </agent>
    </scheduling>
    

    For Sitecore 9 instances:

    <scheduling>
       <agent role:require="!ContentDelivery" name="CoveoSynchronizeTopResults" type="Coveo.SearchProvider.Agents.SynchronizeTopResults, Coveo.SearchProviderBase" method="Run" interval="00:01:00">
         <DatabasesToSynchronize>master;web</DatabasesToSynchronize>
       </agent>
    </scheduling>
    

    Also for Sitecore 9 instances, the <skipFirstTimeSetupCheck> element below, associated with On-Premises instances of Coveo for Sitecore, needs to be removed.

    <skipFirstTimeSetupCheck role:require="ContentDelivery">true</skipFirstTimeSetupCheck>
    

    If you are upgrading to the November 2018 or December 2018 version of Coveo for Sitecore 5, the <skipFirstTimeSetupCheck role:require="ContentDelivery">true</skipFirstTimeSetupCheck> line will not appear among the changes to your .example files. Ensure you remove this line from your current configuration.

  5. The ref attribute value of the <indexCommunicationFactory> element has been changed. The element now reads as follows:

    <indexCommunicationFactory ref="coveo/cloudPlatformCommunicationFactory"/>
    
  6. The following block has been removed in relation to the end of support for LINQ queries.

    <!-- Pipeline used to modify the values of the LINQ results while they are mapped. -->
    <coveoMapLinqQueryResult>
      <processor type="Coveo.SearchProvider.Processors.Queries.MapCoveoMetadataProcessor, Coveo.SearchProviderBase" />
    </coveoMapLinqQueryResult>
    <!-- Pipeline used to specify which fields should be returned on LINQ query results. -->
    <coveoQueryFieldPipeline>
      <processor type="Coveo.SearchProvider.Processors.Queries.AddAllFieldsProcessor, Coveo.SearchProviderBase" />
    </coveoQueryFieldPipeline>
    
  7. In the September 2018 release of Coveo for Sitecore 4.1, the element below appeared as an optional addition in the <settings> element:

    <setting name="Coveo.Indexing.PreferSourceSpecificFields" value="false" />
    

    Coveo now strongly recommends that you add this <setting name="Coveo.Indexing.PreferSourceSpecificFields" value="false" /> element which reverses the default field hashing behavior. Since Coveo for Sitecore now addresses situations where two fields have identical names but different types and field collisions rarely occur, hashing field names should only be used as a last resort (see the isSourceSpecific parameter in Understanding The Coveo Search Provider Configuration File).

  8. To fix an issue with FieldReaderCache, locate the defaultIndexConfiguration/fieldReaders element.

    Within this node, add the following line :

    <param desc="id">coveoFieldReaderMap</param>
    

Coveo.SearchProvider.Custom.config

Remove the following block.

<scheduling>
  <agent name="CoveoSynchronizeTopResults">
    <patch:delete />
  </agent>
</scheduling>

Coveo.SearchProvider.Rest.config

  1. Locate the following block which is associated with On-Premises instances of Coveo for Sitecore.

    <!-- The secret key must be configured in the search api service as well. This way, the search api service can trust the application. -->
    <applicationSecret>replace this with your own application secret</applicationSecret>
    <!-- The timeout period for requests going through the search api proxy.-->
    

    Replace this block with the line below.

    <!-- The timeout period for requests going through the REST endpoint.-->
    
  2. Locate the following line which is also associated with On-Premises instances of Coveo for Sitecore.

    <searchApiUri>http://localhost:8080</searchApiUri>
    

    Replace this line with the one below.

    <searchApiUri>https://platform.cloud.coveo.com</searchApiUri>
    
  3. The following code block has been removed.

    <!-- The "getUserMembers" is exposed by Sitecore2's web service. Therefore, the "getUserMappings" pipeline
         should be used instead to control to which identities a Sitecore user identity is expanded. -->
    <getUserMembers>
      <!-- This processor invokes the "getUserMappings" pipeline in order to expand a Sitecore user identity.
           Invoking the "getUserMappings" pipeline from here ensures a consistent user expansion between on-premises and Cloud deployments. -->
      <processor type="Coveo.SearchProvider.Rest.Processors.Sitecore2.GetUserMembers.InvokeGetUserMappingsPipeline, Coveo.SearchProvider.Rest" />
    </getUserMembers>
    
  4. The following code block has been removed.

    <!-- This processor maps Sitecore users to Active Directory users by following a domain mapping. -->
    <!--
    <processor type="Coveo.SearchProvider.Rest.Processors.GetSearchUserIdentities.AddActiveDirectoryIdentity, Coveo.SearchProvider.Rest">
      <domainMappings hint="raw:AddDomainMapping">
        <domainMapping sitecoreDomain="ad" adDomain="acme.corp.com" />
      </domainMappings>
    </processor>
    -->
    

Coveo.UI.Controls.config

  1. The elements below have been removed, along with all their children, as a result of the end of support for the Legacy Search UI Framework.

    • <commands>
    • <source mode="on" namespace="Coveo.UI.Controls" assembly="Coveo.UIBase" prefix="coveouilegacy" />
    • <processors>
    • <getChromeData>
    • <inheritsFromCoveoTemplate>
    • <getDataSourceDialogURL>
  2. Locate the following code block.

    <initialize>
       <!-- This processor is required to register the routes for the analytics REST API. If you are not using the analytics
            REST API, you can disable this processor. -->
       <processor patch:before="*[starts-with(@type, 'Sitecore.Mvc.Pipelines.Loader.InitializeRoutes')]" mode="on"
            type="Coveo.UI.PipelineProcessors.Initialize.InitializeCoveoRoutes, Coveo.UI" />
    </initialize>
    

    Replace this block with the following.

    <initialize>
       <!-- This processor exposes a simple REST endpoint used in the UI components. -->
       <processor patch:before="*[starts-with(@type, 'Sitecore.Mvc.Pipelines.Loader.InitializeRoutes')]" mode="on"
            type="Coveo.UI.Rest.InitializeCoveoRoutes, Coveo.UI.Rest" />
    </initialize>
    

SwitchMasterToWeb.Coveo.config

For Sitecore 9 instances, Coveo for Sitecore packages do not contain the SwitchMasterToWeb.Coveo.config file. The following changes only apply to Sitecore 7 and 8 instances.

The <scheduling> element below, associated with On-Premises instances of Coveo for Sitecore, has been removed.

<scheduling>
  <agent name="CoveoSynchronizeTopResults">
    <patch:delete />
  </agent>
</scheduling>

The <skipFirstTimeSetupCheck> element below, associated with On-Premises instances of Coveo for Sitecore, needs to be removed.

<skipFirstTimeSetupCheck>true</skipFirstTimeSetupCheck>

If you are upgrading to the November 2018 or December 2018 version of Coveo for Sitecore 5, the <skipFirstTimeSetupCheck>true</skipFirstTimeSetupCheck> line will not appear among the changes to your .example files. Ensure you remove this line from your current configuration.

Step 10 - Delete Deprecated DLLs and Folders

Once every reference to the deprecated DLLs and files have been removed in Sitecore items and configuration files, you can delete them from your Sitecore instance.

The Sitecore Installation Wizard does not allow the removal of files and folders. These actions must therefore be performed manually.

Deleting Deprecated DLLs

  1. In your Sitecore instance filesystem, locate and open the bin folder.

    From Sitecore 9.0 onwards, this folder is located at the root of your Sitecore instance.

    Before Sitecore 9.0, this folder is located in the Website folder.

  2. Within this folder, delete the following files:

    • Coveo.AdminServiceClient.dll
    • Coveo.Connectors.Sitecore2.SitecoreEventHandler.dll
    • Coveo.Connectors.Sitecore2.SitecoreWebService.dll
    • Coveo.Connectors.Sitecore2.SitecoreWebServiceExceptions.dll
    • Coveo.Connectors.Utilities.Compression.dll1
    • Coveo.Connectors.Utilities.Encryption.dll1
    • Coveo.SearchProvider.Linq.dll
    • Coveo.SearchProvider.LinqBase.dll
    • Coveo.UI.dll
    • Coveo.UIBase.dll

      1: The Coveo.Connectors.Utilities.Compression.dll and Coveo.Connectors.Utilities.Encryption.dll files have been replaced by the Coveo.Framework.Compression.dll and Coveo.Framework.Encryption.dll files respectively. Special attention should be taken to delete the correct DLLs.

Deleting No Longer Required Folders

  1. From the bin folder you have just deleted DLLs in, move up one directory.

  2. Locate and open the Coveo folder.

  3. Delete the following folders:

    • css
    • fonts
    • image
    • js
  4. If you are using a Sitecore 7 or 8 instance, open folder [Your Sitecore Instance]\Website\sitecore modules\Web\Coveo. For Sitecore 9 instances, open folder [Your Sitecore Instance]\sitecore modules\Web\Coveo.

  5. Delete the WebService folder.

Step 11 - Including Fields to Index Through the Command Center

This step is only required if your App_Config\Include\Coveo folder does not contain the Coveo.SearchProvider.Fields.Custom.config file. If your folder does not contain the Coveo.SearchProvider.Fields.Custom.config file, this means you have not yet added fields to the list of fields to index using the Command Center or the API services and you should now initiate field indexing through the Command Center.

Coveo for Sitecore 5 greatly simplifies the task of adding or removing fields from the <include> list by allowing you to select them directly from a list in the Command Center user interface. Moreover, all fields you had added to the <include> field list through configuration files will continue to be indexed when you begin using the Command Center for the same purpose.

  1. Open the Coveo Search section of the Sitecore Control Panel (see Opening the Coveo Search Control Panel Section).
  2. Choose Indexing Manager.

  3. In the Command Center left menu, select Fields.

  4. Under the Template tab which lists your Sitecore templates, expand templates to add or remove fields from the list of fields you want to index. When you are done, click Save & Restart near the bottom-left of the screen. This will generate the Coveo.SearchProvider.Fields.Custom.config file.

    If the list of currently selected fields is already exactly the configuration you want, the Save & Restart button is disabled and cannot be clicked. Only in this case, perform steps a) through d) below to generate the Coveo.SearchProvider.Fields.Custom.config file. Otherwise, skip to step 5.

    1. Expand a template which currently contains one or several not included fields. Note the Template Name of the selected template.

    2. Select a currently not included field in the template. Note the Name of the selected field.

    3. Near the bottom-left of the screen, click Save & Restart. This will generate the Coveo.SearchProvider.Fields.Custom.config file.

    4. Repeat steps a) through c) but, this time, to remove the field you just added.

  5. You can now delete the lines below from the Coveo.SearchProvider.config file.

    <!-- 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" />
    

    For more information on adding and removing fields to index using the Command Center Indexing Manager, refer to the following articles:

Step 12 - Upgrade Your Solution Code to Coveo for Sitecore 5

You can now update the project references in your solution.