API client / Methods / Recommend
Required API Key: any key with the search ACL
Method signature
$recommendClient->getRecommendations(array requests)

About this method

We released a new version of the PHP API client in public beta. Read the beta documentation for more information.

We released a new version of the JavaScript API client in public beta. Read the beta documentation for more information.

We released a new version of the Java API client in public beta. Read the beta documentation for more information.

You’re currently reading the JavaScript API client v4 documentation. Check the migration guide to learn how to upgrade from v3 to v4. You can still access the v3 documentation.

You’re currently reading the Ruby API client v2 documentation. Check the migration guide to learn how to upgrade from v1 to v2. You can still access the v1 documentation.

Retrieve recommendations.

This method allows you to use any of Algolia’s recommendation models in a generic way.

If you want to use more specific recommendations, use the appropriate method instead, e.g. get-related-products, get-trending-items etc.

Examples

Read the Algolia CLI documentation for more information.

1
2
3
4
5
6
7
$recommendations = $recommendClient->getRecommendations([
  [
    'indexName' => 'your_index_name',
    'objectID' => 'your_object_id',
    'model' => 'bought-together',
  ],
]);

Parameters

requests
type: list of request object
Required

A list of request objects to execute.

requests ➔ request object

A single recommendation request. The body schema depends on the targeted model. The following parameters are common to all models.

indexName
type: string
Required

The name of the target index.

model
type: "related-products" | "bought-together" | "trending-items" | "trending-facets"
Required

The name of the Recommendation model to use.

threshold
type: number
Required

Threshold for the recommendations confidence score (between 0 and 100). Only recommendations with a greater score are returned.

maxRecommendations
type: number

The number of recommendations to retrieve. Depending on the available recommendations and the other request parameters, the actual number of hits may be lower than that. If maxRecommendations isn’t provided or set to 0, all matching recommendations are returned, and no fallback request is performed.

{
  indexName: "an index name",
  model: "bought-together",
  threshold: 0,
  maxRecommendations: 10,
  objectID: "an objectID",
  queryParameters: { query parameters },
  fallbackParameters: { query parameters }
}

Fetch recommendations of a specific item. The following parameters are specific to models ‘related-products’ and ‘bought-together’.

objectID
type: string
Required

The objectID to get recommendations for.

queryParameters
type: key-value mapping
Optional

A key-value mapping of search parameters to filter the recommendations.

fallbackParameters
type: key-value mapping
Optional

A key-value mapping of search parameters to use as fallback when there are no recommendations.

{
  indexName: "an index name",
  model: "trending-items",
  threshold: 0,
  maxRecommendations: 10,
  facetName: "a facet attribute name",
  facetValue: "a facet value",
  queryParameters: { query parameters },
  fallbackParameters: { query parameters }
}

Fetch trending items, either globally or only those matching a specific facet. The following parameters are specific to model ‘trending-items’. If no facet is provided, the query fetches globally trending items.

facetName
type: string
Optional

The facet attribute to get recommendations for. This parameter must be used along with facetValue.

facetValue
type: string
Optional

The facet value to get recommendations for. This parameter must be used along with facetName.

queryParameters
type: key-value mapping
Optional

A key-value mapping of search parameters to filter the recommendations.

fallbackParameters
type: key-value mapping
Optional

A key-value mapping of search parameters to use as fallback when there are no recommendations.

{
  indexName: "an index name",
  model: "trending-facets",
  threshold: 0,
  maxRecommendations: 10,
  facetName: "a facet attribute name",
}

Fetch trending facet values given a specific facet attribute. The following parameters are specific to model ‘trending-facets’.

facetName
type: string
Required

The facet attribute to get recommendations for.

Response

This section shows the JSON response returned by the API. Since each language encapsulates this response inside objects specific to that language and/or implementation, the actual type in your language might differ from what’s written here. You can view the response in the logs (using the getLogs method).

JSON format

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
{
  "results": [
    {
      "hits": [
        {
          "_highlightResult": {
            "category": {
              "matchLevel": "none",
              "matchedWords": [],
              "value": "Men - T-Shirts"
            },
            "image_link": {
              "matchLevel": "none",
              "matchedWords": [],
              "value": "https://example.org/image/D05927-8161-111-F01.jpg"
            },
            "name": {
              "matchLevel": "none",
              "matchedWords": [],
              "value": "Jirgi Half-Zip T-Shirt"
            }
          },
          "_score": 32.72,
          "category": "Men - T-Shirts",
          "image_link": "https://example.org/image/D05927-8161-111-F01.jpg",
          "name": "Jirgi Half-Zip T-Shirt",
          "objectID": "D05927-8161-111",
          "position": 105,
          "url": "men/t-shirts/d05927-8161-111"
        }
      ],
      "processingTimeMS": 1,
    }
  ]
}
results
list of result

List of results in the order they were submitted, one per query.

{
  "results": [
    {
      "hits": [
        {
          ...,
          _score: 32.72
        }
      ],
    },
  ]
}

results ➔ result

The results object contains the same hits object as the one of the search method. Each result also includes the following additional field:

_score
number

The confidence score of the recommended item, the closer it’s to 100, the more relevant.

Did you find this page helpful?