Foundation
Foundation copied to clipboard
Add language aware DidYouMean functionality
It would be great to have language awareness in the stats call to Find for DidYouMean functionality.
return new ProductSearchResults
{ ProductViewModels = CreateProductViewModels(result, currentContent, filterOptions.Q), FacetGroups = GetFacetResults(filterOptions.FacetGroups, facetQuery, selectedfacets), TotalCount = result.TotalMatching, *DidYouMeans = string.IsNullOrEmpty(filterOptions.Q) ? null : result.TotalMatching != 0 ? null : _findClient.Statistics().GetDidYouMean(filterOptions.Q),* Query = filterOptions.Q, }
;
The request url produced: http://127.0.0.1:8000/kRwa9aF5uXgqvMPFpDh5LHufInfCuWps/tedd_index74640/_didyoumean?query=cucumber responds with
{"status":"ok","hits":[
{"suggestion":"shoes","type":"editorial"}
]}
however, if tags with language are appended to the url, only the relevant results are returned: http://127.0.0.1:8000/kRwa9aF5uXgqvMPFpDh5LHufInfCuWps/tedd_index74640/_didyoumean?query=cucumber&tags=language:sv results with
{"status":"ok","hits":[
{"suggestion":"shoes","type":"editorial"}
]}
It would be good for clients to have examples of this.
Related jira: FIND-11732 (internal to Opti)
Addition to Zachs comment: To add tags to the query, parameters must be appended to the GetDidYouMean call. Like: DidYouMeans = string.IsNullOrEmpty(filterOptions.Q) ? null : result.TotalMatching != 0 ? null : _findClient.Statistics().GetDidYouMean(filterOptions.Q + "&tags=language:en"),
(do not add the tags hardcoded, written like that for clarity)