首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用于过滤JSON值的Azure搜索查询

用于过滤JSON值的Azure搜索查询
EN

Stack Overflow用户
提问于 2019-05-09 01:13:47
回答 2查看 503关注 0票数 2

我正在尝试框显Azure搜索查询。字段类型是Azure搜索索引中的集合(Edm.String)。我要过滤的JSON数据是这样的:"A","B“。

当我尝试使用'A‘中的查询字母表进行过滤时,它会带出其中包含"A“的所有条目。但是当我试图在我的代码中构造相同的查询时,比如“字母表中的‘A’”,它抛出了一个异常,声明:

“无效的表达式:表达式包含不支持的OData语言功能。请修改您的查询,然后重试。

参数名称:$filter“。

是否有其他Azure查询可以用来过滤我的JSON数据?

注意:我不能使用eq,因为我的字段是多值的,而eq只能处理单值。

EN

回答 2

Stack Overflow用户

发布于 2019-05-09 15:09:21

如果你想过滤一个需要包含多个值的集合,例如,你想查询所有集合都有"A“和"B”的结果,可以尝试下面的过滤表达式:

假设您的集合字段名为"alphabet“

代码语言:javascript
复制
$filter=alphabet/any(s: s eq 'A') and alphabet/any(s: s eq 'B')
票数 0
EN

Stack Overflow用户

发布于 2019-05-10 03:54:30

解决这个问题的方法是使用像search.ismatch('A,B','Alphabet','simple','any')这样的search.ismatch查询。因此,结果将包含包含A和/或B的所有记录的搜索结果。

参考:https://docs.microsoft.com/en-us/azure/search/query-odata-filter-orderby-syntax

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

https://stackoverflow.com/questions/56045916

复制
相关文章

相似问题

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