Algolia Recommend Rust Client
📦 Install
$ cargo add algolia-recommend-rs
⚡️ Quick start
use algolia_recommend::{RecommendClient, RecommendRequest, TrendingFacetsRequest};
use serde::Deserialize;
#[derive(Debug, Deserialize)]
struct Product {
title: Option<String>,
}
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = RecommendClient::new("ALGOLIA_APPLICATION_ID", "ALGOLIA_API_KEY");
let recs = client
.get_recommendations::<Product>(
"products",
vec![
Model::BoughtTogether,
Model::RelatedProducts,
Model::TrendingItems,
Model::LookingSimilar,
],
)
.await?;
println!("results: {}", recs.results.len());
for result in recs.results.iter() {
for hit in result.hits.iter() {
println!("objectID={} score={:?}", hit.object_id, hit.score);
}
}
let trending = client
.get_trending_facets(vec![TrendingFacetsRequest::new("products", "category")])
.await?;
println!("trending results: {}", trending.results.len());
Ok(())
}
🦀 Notes
- The library is lenient in (de)serialization to stay forward-compatible with Algolia responses.
- Provide
queryParameters
via RecommendRequest.query_parameters
/ TrendingFacetsRequest.query_parameters
as raw JSON.
📜 License
MIT