use chroma::types::{Aggregate, GroupBy, Key, QueryVector, RankExpr, SearchPayload};
let search = SearchPayload::default()
.r#where(Key::field("status").eq("active"))
.rank(RankExpr::Knn {
query: QueryVector::Dense(vec![0.1, 0.2, 0.3]),
key: Key::Embedding,
limit: 100,
default: None,
return_rank: false,
})
.group_by(GroupBy {
keys: vec![Key::field("category")],
aggregate: Some(Aggregate::MinK {
keys: vec![Key::Score],
k: 2,
}),
})
.limit(Some(10), 0)
.select([Key::Document, Key::Score, Key::field("category")]);