使用多个筛选器的 Azure 搜索

Azure Search Using Multiple filters

我有三个过滤器,即需要应用于搜索查询的类别、子类别和产品类型。我目前正在使用 Azure Search.As,我正在使用 odata 过滤器,如下面的代码所示。

SearchParameters parameters = new SearchParameters();

        string searchText = Request.Query["query"];
        string category = Request.Query["c"];
        string subCategory = Request.Query["sc"];
        string productType = Request.Query["pt"];

        parameters.Filter = $"Category/Id eq '{category}' or SubCategory/Id eq '{subCategory}'" +
                              $"or ProductType/Id eq '{productType}'";

我如何获得一个结果,如果用户应用 categoryId,那么它应该显示与该类别相关的结果 Id.If 用户同时应用 categoryId 和 subcategoryId,他应该能够看到这两种产品与指定的过滤器类别匹配并且 subcategory.If 仅提交 producttypeId 那么他应该能够看到属于该 producttypeId 的产品。当然,我可以使用 if 和 else 并使用 'logical or' 和 'logical and' 构建我的过滤器。 在这方面是否有任何 Odata 库可以帮助我?

感谢 suggestion.I 使用 OData FilterString

解决了这个问题
 string filterquery = FilterString.Generate<Product>(p => p.Category.Id == category && 
            p.SubCategory.Id == subCategory &&                            
            p.ProductType.Id == productType);

 parameters.Filter = filterQuery;