【发布时间】:2018-04-11 18:23:28
【问题描述】:
我已经使用Microsoft Docs page relating to this topic 很长时间了。我一直在阅读文档和 cmets,但找不到适合我的查询的正确语法。
我有一个文档,其中有一个PrimaryUnitTypeId 字段,其类型为Edm.Int32。我想过滤该字段返回的文档,并想一次使用多个值。我正在使用该 .NET 客户端库以及 Azure 门户中的搜索资源管理器。
如果过滤器如下,我的查询有效:
(PrimaryUnitTypeId eq 1 or PrimaryUnitTypeId eq 2)
文档页面顶部的一条注释指出,这是解决此问题的次优方法,应改用 search.in 函数。
我尝试将过滤器切换为 search.in(PrimaryUnitTypeId, '1,2') 或 search.in(PrimaryUnitTypeId, '1,2', ','),根据文档,这似乎是正确的语法,但我一直收到以下错误:
无效的表达式:具有名称的函数没有函数签名 'search.in' 匹配指定的参数。函数签名 考虑的是:search.in(Edm.String, Edm.String, Edm.String); search.in(Edm.String, Edm.String)。\r\n参数名称:$filter
我尝试使用 API 的 2016-09-01 和 2016-09-01-Preview 版本均无济于事。
我需要如何修改上述过滤器才能让 Azure 搜索识别并应用过滤器?
【问题讨论】: