Migrating from Google Search Appliance to Coveo: A Real-Life Example
Providing website visitors with effective search results is critical to delivering an engaging and seamless customer experience in today’s consumer-driven society. Organizations know that when visiting a website, customers expect to find the relevant information they are seeking, and fast.
As Google Search Appliance (GSA)’s end of life rapidly approaches, businesses that rely on the product must start transitioning to another effective search solution. One of our healthcare customers was relying on GSA for several sites and, after evaluating alternative products, chose Coveo due to its scalability, analytics capabilities and compatibility with Sitecore. Given the nature of the integration and the strict deadline, EPAM worked with our customer to develop a few approaches to effectively migrate the search functionality and support multisite search suggestions.
Migrating Metadata from GSA to Coveo Fields
Field search and faceting is a big component of search that enables users to more quickly narrow results and find what they are looking for. There are a couple of approaches to consider when migrating fields to Coveo from GSA.
One approach is to turn on web crawl and leverage existing HTML meta tags. The existing meta tags were originally created for GSA, but Coveo can also crawl and index meta tags. To enable Coveo to include the meta tags as fields in each document, custom fields need to be created and mapped. Because the metadata already exists for crawling, no additional development is required, saving valuable time. There are, however, some drawbacks to this approach, as it is not Sitecore’s standard approach. With our client, we installed the Sitecore connector for better integration, which cleared our custom mappings each time the index was updated. Since it wasn’t feasible for the client to recreate the field mapping after every index update, we decided to take another route.
The standard approach and better, albeit more time-consuming, approach, is to convert each metadata field to a Sitecore computed field. It’s important to note the increased risk associated with this method due to the code changes required and potential for bugs, such as computed field values differing from the meta tag values. Therefore, it’s critical to test first and mitigate with minor code adjustments.
Supporting Multi-Site Search Suggestions
Many complex businesses have multi-site search functionality with separate search interfaces. Each site typically contains a unique set of content and characteristics based on the intended end user. When we initially set up Coveo to share the same query pipeline and analytics model for our client, we noticed that the search suggestions were the same on all three sites and not relevant to the specific site the end user was on. We also noticed that relevant content was either missing or appeared too far down in the search results. The analytics, although collected from different sites and domains, were still shared among all three search interfaces and the client was unable to run reports for all three search inquires.
To address these challenges, we configured three separate query pipelines, each with its own unique analytics model. We initially thought this tactic would enable Coveo to be multi-site capable with suggestions and relevance, but discovered that even with separate pipelines with analytics models, Coveo still uses one pool of analytics data for all pipelines.
- Under ‘Train on events’, select the ‘Specific’ radio button.
- Click ‘Origin 1’ (Page/Interface).
- Select the ‘Is’ operator.
- In the ‘Enter filter value’ input, select or type the name for your search hub.
- Your search hub is the name of the unique search page, for our purposes, it was one of three values that represented each site.
- Click ‘Add Filter’ and ‘Save’.
While this process will handle the Coveo administrator issue, you should still ensure that the queries from our three site search pages send the search hub parameter with the specific site value (configured above in step 4).
To do this, simply update the analytics component with the search-hub data attribute:
data-search-hub='site specific search hub'
You should now have site specific query suggestions and increased relevancy per site as well as the ability to report and analyze various site searches.
When integrating Coveo with Sitecore using Sitecore’s connector, it’s important to note that the connector ultimately controls the field configuration. Therefore, computed fields should be created for any additional field data instead of trying to use existing HTML meta tags. To ensure Coveo analytics, machine learning, and search results and suggestions are multi-site specific, some small configurations need to be made in the Coveo control panel and Coveo analytics component. Making these changes ensures that each unique search experience not only feeds into a unique analytics model, but that it also utilizes site-specific analytics to ensure the most relevant results and suggestions are provided to the end user.