search
If there isn’t enough data for Frequently Bought Together, it’s better to show a different type of
recommendation, for example, related products.
Examples
public class Product
{
public string ObjectID { get; set; }
public string Name { get; set; }
public string Category { get; set; }
public float Price { get; set; }
}
public class RecommendedProduct : Product, Algolia.Search.Models.Recommend.IRecommendHit
{
public float Score { get; set; }
}
var requests = new List<Algolia.Search.Models.Recommend.BoughtTogetherRequest> {
new Algolia.Search.Models.Recommend.BoughtTogetherRequest {
IndexName = "INDEX_NAME",
ObjectID = "your_object_id",
}
}
var recommendations =
recommendClient.GetFrequentlyBoughtTogether<RecommendedProduct>(requests);
// Asynchronous
var recommendations =
await recommendClient.GetFrequentlyBoughtTogetherAsync<RecommendedProduct>(requests);
options := recommend.NewBoughtTogetherOptions("IndexName", "B018APC4LE", 0, nil, nil)
res, err = recommendClient.GetFrequentlyBoughtTogether([]recommend.FrequentlyBoughtTogetherOptions{options})
class Product implements RecommendHit {
String objectID;
String name;
Float score;
@Nonnull
@Override
public Float getScore() { return score;}
public void setScore(Float score) { this.score = score;}
public String getObjectID() { return objectID; }
public void setObjectID(String objectID) { this.objectID = objectID; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
}
FrequentlyBoughtTogetherQuery query = new FrequentlyBoughtTogetherQuery("yourIndexName", "yourObjectID");
// Synchronous
List<RecommendationsResult<Product>> recommendations = recommendClient.getFrequentlyBoughtTogether(Arrays.asList(query), Product.class);
// Asynchronous
CompletableFuture<List<RecommendationsResult<Product>>> recommendations = recommendClient.getFrequentlyBoughtTogetherAsync(Arrays.asList(query), Product.class);
recommendClient
.getFrequentlyBoughtTogether([
{
indexName: "INDEX_NAME",
objectID: "your_object_id",
},
])
.then(({ results }) => {
console.log(results);
})
.catch((err) => {
console.log(err);
});
val request = FrequentlyBoughtTogetherQuery(
indexName = IndexName("yourIndexName"),
objectID = ObjectID("yourObjectID"),
)
recommendClient.getFrequentlyBoughtTogether(requests = listOf(request))
$recommendations = $recommend_client->getFrequentlyBoughtTogether([
[
'indexName' => 'INDEX_NAME',
'objectID' => 'your_object_id',
],
]);
recommendations = recommend_client.get_frequently_bought_together(
[
{
"indexName": "INDEX_NAME",
"objectID": "your_object_id",
},
]
)
recommendations = recommend_client.get_frequently_bought_together(
[
{
indexName: "INDEX_NAME",
objectID: "your_object_id"
}
]
)
recommendClient.execute {
val query = FrequentlyBoughtTogetherQuery(
indexName = "yourIndexName",
objectID = "yourObjectID"
)
get frequentlyBoughtTogether List(query)
}
let options = RecommendationsOptions(indexName: "IndexName", objectID: "B018APC4LE")
recommendClient.getFrequentlyBoughtTogether(options: [options]) { result in
if case .success(let response) = result {
print("Response: \(response)")
}
}
Parameters
Show child attributes
Show child attributes
The name of the target index.
The object ID of the item for which to get recommendations.
Threshold for the recommendations confidence score (between 0 and 100).
Only recommendations with a greater score are returned.
The maximum number of recommendations to retrieve.
Depending on the available recommendations and the other request parameters,
the actual number of hits might be lower.
If
maxRecommendations isn’t provided or set to 0,
all matching recommendations are returned,
and no fallback request is performed.List of search parameters,
except:
page, hitsPerPage, offset, and length.Response
List of results in the order they were submitted, one per query.Example:
JSON
{
"results": [
{
"hits": [
{
// ...,
"_score": 32.72
}
]
}
]
}
Show child attributes
Show child attributes
The confidence score of the recommended item, the closer it is to 100, the more relevant it is.
Response as JSON
This section shows the JSON response returned by the API. Each API client wraps this response in language-specific objects, so the structure may vary. To view the response, use thegetLogs method.
Don’t rely on the order of properties—JSON objects don’t preserve key order.
JSON
{
"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
}
]
}