Azure搜索的正确search.in语法是什么?

时间:2018-04-11 18:23:29

标签: azure-search

我已经在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-012016-09-01-Preview版本都无济于事。

如何修改上述过滤器以使Azure Search识别并应用过滤器?

1 个答案:

答案 0 :(得分:0)

search.in函数目前仅支持Edm.String类型的字段。您可以通过添加新的字符串字段并使用整数数据填充它,或者通过更改PrimaryUnitTypeId字段的类型并重新创建/重新填充索引来使此方案有效。