Upgrading to Coveo for Sitecore Hive Framework - FAQ

This article covers some questions related to upgrading from the Legacy UI Framework to the Coveo for Sitecore Hive Framework.

What Am I Gaining If I Decide to Upgrade?

Here is a list of some advantages:

  • All-new modular components
    • Separated and specific purpose for each component
    • Easier to configure
    • Easier to move around
    • Allows multiple layout possibilities out-of-the-box
  • Better support for Custom Coveo JavaScript Search Framework components
  • Easier integration with existing sites
  • In-file result templating

For more details about the advantages of Coveo for Sitecore Hive over the Legacy framework, see Coveo for Sitecore Hive Versus Legacy UI and the Coveo for Sitecore Hive: What is it? blog article.

New features of the new framework will not be ported to the legacy framework. Only critical bug fixes will be applied to the old framework.

What If I Want to Upgrade?

The Legacy components are not compatible with the new framework, so you need to start your search interface over.

It takes some work to create a search interface that looks like your older search interface, but you will end up with reusable and easier to maintain components.

Can I Port My Existing Components?

It depends on your specific component.

Coveo Hive Framework still uses the Coveo JavaScript Search Framework. All customization done using the JavaScript Search Framework components will work as usual.

However, some concepts were removed from the Legacy Coveo for Sitecore JavaScript.

Here are some things that were removed.

jQuery

Coveo for Sitecore no longer bundles jQuery with the new UI.

You can still use jQuery, but the package does not provide an initialization call like this anymore: $("#search").coveoForSitecore()

CoveoForSitecore.componentsOptions

This variable has been removed.

The whole library is now stateless and uses custom Coveo JavaScript Search Framework components to trigger custom events to share options between multiple components.

This allows having multiple search Interfaces that have no chances of interfering with each other.

For more information on the new components, see Coveo Hive Renderings List.

Model.ToCoveoFieldName

To support HTML caching, all code related to a custom context has been transferred to the CoveoForSitecoreContext component and is now all handled client-side instead.

To translate your fields, use the JavaScript method CoveoForSitecore.Context.fields.toCoveo("@yourfield"). The Coveo Search Resources must be included in the page.