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

What is the correct search.in syntax for 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', ','),根据文档,这似乎是正确的语法,但我不断收到以下错误:

Invalid expression: No function signature for the function with name 'search.in' matches the specified arguments. The function signatures considered are: 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.in函数目前只支持Edm.String类型的字段。您可以通过添加一个新的字符串字段并用您的整数数据填充它,或者通过更改 PrimaryUnitTypeId 字段的类型和 recreating/repopulating 您的索引来使此方案起作用。