我已经在Microsoft Docs page relating to this topic待了很长时间。我一直在阅读文档和评论,但找不到我查询的正确语法。
我的文档的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 \ nParameter name:$ filter
我尝试过使用API的2016-09-01
和2016-09-01-Preview
版本都无济于事。
如何修改上述过滤器以使Azure Search识别并应用过滤器?
答案 0 :(得分:0)
search.in
函数目前仅支持Edm.String
类型的字段。您可以通过添加新的字符串字段并使用整数数据填充它,或者通过更改PrimaryUnitTypeId
字段的类型并重新创建/重新填充索引来使此方案有效。