Returns the top product attributes and the top specific products for a specific query. Both the attributes and specific products weights are calculated based on user clicks, add-to-carts and purchases and the values are normalized using a linear function.
With segmentation can send a user attributes list ("key":"value", ...) and number of tries in the request and the API try to return a segment data using this user attributes. If not have results for this user attributes in this number of tries it return the basic query context.
"topAttributes" objects don't have a fixed order and it may change in between requests. Although, values for each attribute are sorted by "weight" in descending order.
"topProducts" are sorted by "weight" in descending order.
GET
/v2/querycontext/all/{client_id}?query={query}&lang={lang}&attributes.rows={attributes.rows}&products.rows={products.rows}&userAttributes={userAttributes}&maxTries={maxTries}&events.min={eventsMin} |
/v2/querycontext/all/ebdemo?query=dress&lang=en&attributes.rows=3&products.rows=2&userAttributes=gender:male,size:M&maxTries=3&events.min=25 |
Parameter name | Required | Description |
---|---|---|
client_id | Client identifier on the system |
Parameter name | Required | Description | Default |
---|---|---|---|
query | Search term that user did | - | |
lang | Language of the query | - | |
attributes.rows | Number of values of each field | 1 | |
products.rows | Number of products to return | 5 | |
events.min | Minimum number of events required to return a field or product. | client configuration / 10 | |
userAttributes | User attributes to get segmentation data | - | |
maxTries | Max tries to do segmentation intents | client configuration / 3 |
Type: application/json
{ "topAttributes": [ { "field": "brand", "values": [ {"value": "apple", "weight": 3}, {"value": "sony", "weight": 1.8} ] }, { "field": "category", "values": [ {"value": "mobiles", "weight": 3} ] } ], "topProducts": [ {"value":"213115", weight:"3"}, {"value":"213149", weight:"1.3"} ] } |
Type: application/json
{ "code": 400, "error": "XXX is mandatory" } |
Type: application/json
{ "code": 404, "error": "XXX not found" } |