Related tags
Related tags expands a search phrase by adding one group of terms. When a Related tag is added new relevant tags are show.
Generating related tags
The related tags are generated based on suggestions, such that related tags becomes a way to navigate through suggestions.
To generate related tags for a suggestion, we break it up into all the tags the suggestion consists of. The found tags are then used to create From paths that could have led the user to this suggestion.
Example on how From paths and related tags would be build for the 'lego disney duplo' suggestion:
If the user has searched for "lego disney" then the related tag "duplo" would be suggested. Had the user instead searched for "disney duplo" then the related tag "lego" would instead have been suggested.
Each From path is therefore generated by removing one tag from the suggestion, and this process is repeated until we have generated a From for each found tag.
Examples
The suggestion 'lego disney duplo' have the following three From paths:
'lego disney' - The tag 'duplo' has been removed
'disney duplo' - The tag 'lego' has been removed
'lego duplo' - The tag 'disney' has been removed
Splitting suggestion into tags
Each term in the suggestion is converted into a tag unless multiple terms have been marked as terms that should be grouped into a single tag. (see section below)
Exact match From
All the terms specified in the From section must be exactly matched.
Terms in any order
The way the related tags are generated and matched also ensures that the order of the terms in a search phrase does not matter. This is important as the a search for 'lego disney' would give the same results as 'disney lego'.
This also solves issues where the user would not be shown any suggestions because no suggestion would start with the users search phrase. E.g. if a suggestion 'lego duplo' exists, then a search for 'duplo' should give the 'lego' related tag.
Example
Grouping terms into a single tag
Terms that are strongly related should not be divided into individual terms. E.g. "Harry Potter" is preferred over "Harry" and "Potter". The user should be given the related tag "Harry Potter" and not first "Harry" and then "Potter".