Addressing search misses due to search dropping
In cases where a search query doesn't yield the expected results (commonly referred to as "Search Misses"), the system takes proactive measures to enhance your search experience.
Term dropping, a key strategy in this process, is applied based on the
configured term dropping priority. When term dropping occurs, a new query is executed,
refining the search term to increase the likelihood of finding relevant products. This
term dropping, combined with search term breakdown, is reflected in the response JSON
data as part of metaData
under searchExecution.
Identifying Term Dropping in SearchExecution
Each time a term dropping operation is executed, a new node is
added under searchExecution
. This node includes all the search term
breakdown information. As a result, the presence of multiple nodes within the
searchExecution list signifies the iterations and adaptations
made to the search term after each term dropping operation.
{
"metaData": {
...
"searchExecution": [
{
"searchTerm": "red dress",
"searchRule": {},
"nlp": {
"pos": "ADJECTIVE --> [red]",
"ner": "CATEGORY --> [dress~dresses] (boosted by 100.0)",
"color": "COLOR --> [red]"
},
"customFields": {}
},
{
"searchTerm": "dress",
"searchRule": {},
"nlp": {
"ner": "CATEGORY --> [dress~dresses] (boosted by 100.0)"
},
"customFields": {}
}
]
},
...
In this example, the search term red dress initially contains
two components, COLOR --> [red]
and CATEGORY -->
[dress~dresses]
. However, the term dropping process identifies that
"red" is a color with higher priority than the category "dress." Consequently, "red"
is dropped first, resulting in a refined search term of "dress".
4
(representing 'COLOR'
)
is higher in priority than a value of 6
(representing
'CATEGORY'
)."termDroppingPriority": {
"1": "FILTER",
"2": "MEASUREMENT",
"3": "BRAND",
"4": "COLOR",
"5": "ADJECTIVE",
"6": "CATEGORY",
"7": "NOUN"
}
Disabling term dropping
- Open your NLP profile configuration file. This can be the default profile or any custom profile you are using.
- Locate the termDroppingPriority node.
- Set termDroppingPriority to an empty
value.
"termDroppingPriority": {}
By setting termDroppingPriority to an empty value, you indicate that no specific term dropping priority is defined. This results in the disabling of term dropping for search misses. No results are returned when a search term does not match any products.