使用多个筛选器的 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;
我有三个过滤器,即需要应用于搜索查询的类别、子类别和产品类型。我目前正在使用 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;