我有一个问题与创建弹性面。
我有一些产品的品牌和商店道具,现在我想过滤结果,例如:
Brand: Adidas
Shop: Amazon
但用户仍必须能够选择其他按品牌过滤的商店和按商店过滤的品牌。
我试着这样做:
var queryResult = await client.SearchAsync<Product>(s => s.From((parameters.Page-1) * 56)
.Size(56)
.Sort(s => s.Descending(f => f.Price))
.Aggregations(a => a.Terms("Brands", st => st.Field(o => o.BrandSeo)
).Terms("Shops", st => st.Field(f => f.ShopSeo))
).PostFilter(q => {
QueryContainer query = null;
if (parameters.Shops.Any())
query &= q.Terms(t => t.Field(p => p.ShopSeo).Terms(parameters.Shops));
if (parameters.Brands.Any())
query &= q.Terms(t => t.Field(p => p.BrandSeo).Terms(parameters.Brands));
return query;
}
));
我的产品是过滤的,但聚合不是,品牌不是按商店过滤,商店不是按品牌过滤。在过滤器中,我只想向用户展示品牌为“adidas”的商店和品牌为“amazon”的商店。一次查询就可以吗?
暂无答案!
目前还没有任何答案,快来回答吧!