Recommend Items for User Stage
The Recommend Items for User query pipeline stage uses signals about item choices to recommend other similar items for a specific user. Personalization for the user can be based on the user’s search history, browsing history, or purchase history, and so on.
This pipeline stage uses items-for-user recommendations that have been precomputed by an ALS Recommender job.
Before creating a Recommend Items for Item stage, enable recommendations.
-
In the Fusion UI – With Query Workbench open, click Settings > Enable Recommendations.
-
Using the REST API – Use this command to enable recommendations:
`curl -u admin:<password> -X PUT http://<hostname>:<port>/api/v1/collections/<collection-name>/features/recommendations -H 'content-type: application/json' -d '{"enabled":true}'
|
When you enable recommendations, Fusion creates a query pipeline that already contains this stage, and that is configured for boosting. The query pipeline is COLLECTION_NAME_items_for_user_recommendations .
|
The Estimate Recent Results option uses live signals to augment items-for-user recommendations with real-time recommendations.
When this is enabled, Fusion first looks up items (from previously-generated recommendations) that are similar to the new items. If there are none then it looks up similar users (who also interacted with that item) to get a list of recommendations based on the new items. It then combines those new recommendations with the job-based recommendations already generated for that user (if any), to generate a final list of recommendations.
|
When entering configuration values in the UI, use unescaped characters, such as \t for the tab character. When entering configuration values in the API, use escaped characters, such as \\t for the tab character.
|
This stage uses user recommendations for search time boosting
skip - boolean
Set to true to skip this stage.
Default: false
label - string
A unique label for this stage.
<= 255 characters
condition - string
Define a conditional script that must result in true or false. This can be used to determine if the stage should process or not.
numRecommendations - integer
Default: 10
modelID - string
Default: *
collection - string
If left blank, the default recommendation collection for the collection being queried will be used.
resultsLocation - string
If As Response is chosen, then the result of the RPC call will be the one and only response. In all other cases, the stage will put the response from the REST/RPC call into the target location using the resultsKey.
Default: As Boosts
Allowed values: As BoostsAs Response
modelIdField - string
the name of the field in the recommendation collection where model ID is stored
Default: modelId
scaleRange - Scale Boosts
Scale the boost values to a [min,max] range
scaleMin - number
scaleMax - number
foldInUpdates - boolean
Update recommendations based on user activity that has happened since the last recommendation job run
boostFieldName - string
The field name to boost the values on.
Default: id
boostingMethod - stringrequired
The boost method to use. query-parser should be chosen if defType!=edismax for main query.
Default: query-param
Allowed values: query-paramquery-parser
boostingParam - stringrequired
’Boost' multiplies scores by the boost values whereas 'bq' adds optional clauses to main query.
Default: boost
Allowed values: boostbq
userIdParam - string
The name of the request parameter containing the user ID
Default: user_id
userIdField - string
the name of the field in the recommendation collection where user ID is stored
Default: userId
itemIdField - string
the name of the field in the recommendation collection where item ID is stored
Default: itemId
weightField - string
the name of the field in the recommendation collection where weight of the recommendation is stored
Default: weight
modelCollection - string
The name of the collection where models are stored. By default this is {app_name}_recommender_models
rawSignalsCollection - string
The collection to use to fetch recent user interactions, if 'Estimate Recent Results' is true.