首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用多个过滤器的Azure搜索

使用多个过滤器的Azure搜索
EN

Stack Overflow用户
提问于 2020-03-02 13:22:32
回答 1查看 923关注 0票数 2

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

代码语言:javascript
代码运行次数:0
运行
复制
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,并使用“逻辑或”和“逻辑和”构建我的过滤器。是否有任何Odata库能在这方面帮助我?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-03 06:40:41

谢谢你的建议,我用OData FilterString找到了解决这个问题的方法

代码语言:javascript
代码运行次数:0
运行
复制
 string filterquery = FilterString.Generate<Product>(p => p.Category.Id == category && 
            p.SubCategory.Id == subCategory &&                            
            p.ProductType.Id == productType);

 parameters.Filter = filterQuery;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60489762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档