Relaxing search criteria¶
Not all search experiences are extraordinary experiences. A typical poor experience happens when the visitor receives few or poor results on a search result page. The cause can be one of the following:
- The search query was poorly chosen, overly specific, or misspelled.
- The search engine cannot figure out the correct interpretation of the query.
- The retailer does not offer a solution to the visitor’s problem.
Whatever the reason, if the visitor believes they can't find what they are looking for, they may leave the site entirely at this point. To avoid this, Elevate provides a section with related searches in the search page result to give the visitor a second chance at finding what they're after and keeping them engaged.
Adding related searches to the search result page¶
Enable feature
For compatibility reasons, existing integrations need to enable support for related searches. For more information about enabling support for related searches, please contact Voyado Support.
The related searches are returned as a field, relatedSearches
, in the search page response. The field will include simple queries when the primary list contains less than 100 products. In addition, questions can be relaxed by removing soft criteria such as color, size, and material but retaining more complex requirements such as product type and brand. Note that the actual rules for relaxing queries are subject to change without notice.
Step-by-step¶
- Ensure that search criteria relaxation is enabled for the selected cluster. Either contact Voyado Support, or perform a search page query with a search phrase containing multiple soft criteria and a product type, for example
brown leather bag
. If therelatedSearches
field and thesecondaryList
field is present in the response, the feature is enabled. - Add code to render related searches after the primary list in the front end.
// Pseudo code if searchPageBody.relatedSearches exists and is not empty then print heading "Searches related to '<original phrase>'" for each item in searchPageBody.relatedSearches print link with text=item.q and href="?q=<urlencode(item.q)>"
- Set the search origin to
RELATED_SEARCHES
in the request. - Verify that the code is working and that clicking on a link shows a new search result page with the query replaced and all filters and sort orders reset.
Adding a secondary list to the search result page¶
While the related searches make it easier for the visitors to restate their queries explicitly, they can be hard to notice at a quick glance. Also, it is not apparent that the results will be any more valuable than the current result. To further increase the probability of visitors finding what they are looking for, Elevate also offer a secondary result list.
The secondary list will be populated with products that do not strictly adhere to the original search phrase but that Elevate still believes to be reasonable candidates, should the primary list be insufficient. Typically, the second list contains products from the results of the relaxed queries. Some queries may also include products found by lower-probability interpretations that would otherwise obfuscate the primary list.
When the search criteria relaxation is enabled, Elevate will expect the site to render both related searches and a secondary list when they are non-empty.
Step-by-step¶
- Ensure that search criteria relaxation is enabled for the selected cluster. Either contact Voyado Support, or perform a search page query with a search phrase containing multiple soft criteria and a product type, for example
brown leather bag
. If therelatedSearches
field and thesecondaryList
field is present in the response, the feature is enabled. - Add code to render the secondary list after the primary list (and before the related searches) in the front-end.
// Pseudo code if body.secondaryList exists and body.secondaryList.totalHits > 0 then print heading "Explore more options" // or a heading of your choice for each item in body.secondaryList.productGroups print product card for item print link with text="View all <body.secondaryList.totalHits> item(s)" and href="<current url with added parameter viewAllSecondary=true>"
- Add code to check if
viewAllSecondary
is set to true when the search result page is loaded. If so, addviewAllSecondary=true
as a parameter to the Elevate search-page request too, and replace the heading of the primary results with a message saying,Products related to <q>
. - Verify that the code is working and that clicking on a link in the secondary list shows a new search result page with the same query but with
viewAllSecondary
set and the heading modified. The primary list now includes all the items from the secondary list, and the second list has been emptied.