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, visitors will end up either mistrusting the search function and instead of trying other means of finding their product, such as navigating the main menu or calling support, they will take the results for the truth and conclude that the retailer cannot help with their current problem, abandoning the site entirely.
While the developers at Voyado are working hard to minimize the cases where the search engine fails to interpret the query correctly, sometimes the question is stated in a way that inadvertently limits the chances of success. For those cases, Elevate would like to offer the visitor a second chance and path forward by providing support to restate the query efficiently. That is why Elevate now includes a related searches section in the search page result.
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. In the first release of the feature, the related searches 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 anyway 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.