Coveo for Sitecore 4 to Coveo for Sitecore 5 Upgrade Procedure

This article describes the steps to upgrade from Coveo for Sitecore 4 to Coveo for Sitecore 5.

To ensure the upgrade goes as smoothly as possible, follow the upgrade steps carefully. You should also apply the leading practices when upgrading Coveo for Sitecore throughout the procedure.

Step 1: Switch from On-Premises to Cloud Indexes

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

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

Minimally, you need the October 2018 release of Coveo for Sitecore 4.1 to be able to step up to Coveo for Sitecore 5.

If you’re currently running the October 2018 or a post-October 2018 version of Coveo for Sitecore 4.1, you can proceed to Step 3: Replace Legacy Components With Coveo for Sitecore Hive Renderings. Otherwise, incrementally update your Coveo for Sitecore 4.0 or 4.1 version to the October 2018 release of Coveo for Sitecore 4.1.

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

Step 3: Replace Legacy Components With Coveo for Sitecore Hive Renderings

Coveo for Sitecore 5 is meant to be used with the Coveo for Sitecore Hive Search Framework rather than the legacy components. Coveo for Sitecore 5 packages don’t contain the legacy components, nor the Coveo JavaScript V1 Search Framework the legacy components depend on. You must therefore replace your legacy search interfaces with Coveo for Sitecore Hive search interfaces.

To fast-track your way to a functional basic website search solution, you might want to begin with inserting an Example Search Page and inserting and configuring a global search box. This would provide a viable search solution while you work on creating a more customized and powerful search page from the ground up in Coveo for Sitecore 5 (see Building Search).

For general information about 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, we recommend that you ensure that you’re not using any obsolete APIs. Coveo for Sitecore 5 also removed the support for querying Coveo using LINQ code.

  1. Update your Visual Studio project references to the October 2018 release assemblies.

  2. Ensure that there are no #pragma warning instructions in your code that would disable obsolete warnings.

  3. Ensure that there are no obsolete warnings when compiling.

  4. Ensure that you remove any LINQ code querying the Coveo indices.

  5. Replace LINQ code found in step 4 with LINQ code querying the out-of-the-box Sitecore indices (Lucene, Solr, or Azure Search) or with Coveo for Sitecore Hive search interfaces or listing pages.

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

Step 5: Upgrade to Coveo for Sitecore 5

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

  • 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 in to the Sitecore Desktop.

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

  3. Upload and install the Coveo for Sitecore 5.0.74.10 package built for the specific version of Sitecore you’re using (e.g., Sitecore 9.0). You can find the package 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. 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. If you’re using SXA, upload and install the Coveo for Sitecore SXA 5.0.74.10 package built for the specific version of Sitecore you’re running. You can find the package in Downloads. If necessary, refer to the SXA Compatibility Tables to determine the proper SXA version for your version of Sitecore.

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

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

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’s no longer required and should be deleted to avoid confusion.

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 doesn’t allow the removal of items from the content tree. This action must 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 won’t 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. Coveo Hive and Coveo Legacy folders are usually siblings in the Sitecore content tree, as illustrated by the Coveo layouts folders in the screenshot below.

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

Deleting Coveo Base Items

  1. You may delete the following Coveo Legacy Search UI folders, their sub-items and item/sub-item links.

    • /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 can’t be deleted entirely in a single step. Referenced items 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, you must delete the no-longer-used controls.

Sitecore 7 and 8 The files to delete are located under [Your Sitecore Instance]\Website\sitecore modules\Shell\Coveo\.

Sitecore 9 The files to delete 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’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.

As a result of the feature changes between the October 2018 release of Coveo for Sitecore 4.1 and the November 2018 release of Coveo for Sitecore 5, here are, in further detail, the modifications you must make in the configuration files:

In the Coveo.SearchProvider.config File

  1. The lines below, associated with the AddCoveoFieldsProcessor, have been removed. This processor is no longer required. You may delete these lines in your configuration.

    <!-- 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’re now included through the IncludeFieldsFromConfigOnlyProcessor. The AddTemplateFieldsProcessor 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. Apply these changes in your configuration.

    <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 that 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. You can remove these lines in your configuration.

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

    Sitecore 7 and 8

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

    Sitecore 9

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

    Sitecore 9

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

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

    The <skipFirstTimeSetupCheck role:require="ContentDelivery">true</skipFirstTimeSetupCheck> line might not appear among the changes to your .example files. Ensure that 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"/>
    

    Apply this modification in your configuration.

  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're 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>
    

In the Coveo.SearchProvider.Custom.config File

Remove the following block.

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

In the Coveo.SearchProvider.Rest.config File

  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. Apply this modification to your configuration.

    <!-- 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 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. Apply this modification to your configuration.

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

In the Coveo.UI.Controls.config File

  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. Apply these modifications to your configuration.

    • <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're 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>
    

In the SwitchMasterToWeb.Coveo.config File

Sitecore 7 and 8

The <scheduling> element below, associated with On-Premises instances of Coveo for Sitecore, has been removed. Apply this modification to your configuration.

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

Sitecore 7 and 8

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

<skipFirstTimeSetupCheck>true</skipFirstTimeSetupCheck>

If you’re 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 that 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 doesn’t 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.

    Sitecore 7 and 8 The bin folder is located in [Your Sitecore Instance]/Website.

    Sitecore 9 The bin folder is located at the root of your Sitecore instance.

  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. Delete the WebService folder.

    Sitecore 7 and 8 The WebService folder is located in the [Your Sitecore Instance]\Website\sitecore modules\Web\Coveo folder.

    Sitecore 9 The WebService folder is located in the [Your Sitecore Instance]\sitecore modules\Web\Coveo folder.

  5. Delete the legacy Coveo view files folder.

    Sitecore 7 and 8 Delete the [Your Sitecore Instance]\Website\Views\Coveo folder. Do not delete its sibling Coveo Hive folder.

    Sitecore 9 Delete the [Your Sitecore Instance]\Views\Coveo folder. Do not delete its sibling Coveo Hive folder.

  6. Delete the legacy Coveo layout files folder.

    Sitecore 7 and 8 Delete the [Your Sitecore Instance]\Website\layouts\Coveo folder. Do not delete its sibling Coveo Hive folder.

    Sitecore 9 Delete the [Your Sitecore Instance]\layouts\Coveo folder. Do not delete its sibling Coveo Hive 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 doesn’t 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’re 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 can’t 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, see the following articles:

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

You can now update the project references in your solution.

Recommended Articles