想在电子商务网站上使用azure搜索进行搜索。我挣扎的部分是产品库存。每个产品都有为几个商店部门保存的库存。客户可以选择一个或两个部门作为搜索过滤器。是否可以通过特定部门的库存订购产品?并且可以过滤具有库存>的产品。 0例如id为2或4的部门?我知道Collection(Edm.String)类型的字段不能排序,但是可能有其他方法来实现这种情况吗?一种方法是从搜索中采用所有过滤器的产品,尽管是库存,然后在服务器端按库存(或过滤器库存> 0)订购,但它可能是缓慢且低效的,特别是对于大型产品组。其他方法可能是在单独的领域为每个部门节省库存,但目前我们有200个部门,而且数量可能更高。它不是太多的领域吗?
感谢您的任何建议
答案 0 :(得分:0)
有几种方法可以解决这个问题,每种方法都有不同的权衡。
orderby
参数中的显示顺序,您就可以轻松地按不同部门进行订购。但是,Azure Search的每个索引限制为1000个字段(对于基本层,此限制降至100),因此在添加更多部门时,此方法可能无法扩展。$filter=departments/any(d: (d/departmentId eq 2 or d/departmentId eq 4) and d/stock gt 0)
),但您仍需要在应用程序代码中进行排序。