我正在使用如下所示的 Azure 搜索筛选器选项
$filter=cityList/any(t: search.in(t, '1')) 并命名 eq '高科技酒吧和餐厅' &search=*&scoringProfile=search-score&searchMode=Any&queryType=FULL
除保留字之外的所有字过滤器都工作正常。
; / ? : @ = + &
任何人都可以帮我找到如何在 Azure 搜索过滤器中使用保留字吗?
提前致谢。
最佳答案
需要考虑两个级别的编码。首先,OData 表达式本身。我假设您需要在字符串常量中使用特殊字符,在这种情况下,您需要编码的唯一字符是单引号,您可以通过加倍对其进行编码。例如:$filter=Name eq 'O''Neil'。第二级编码取决于您对搜索请求使用的是 HTTP GET 还是 POST。如果你使用的是 Azure 搜索 .NET SDK,它会为你处理此细节。如果您直接使用 REST API 并且使用 GET,则需要对过滤器表达式进行 URL 编码。如果您使用 POST,则需要像对任何其他 JSON 字符串一样对过滤器表达式进行编码。例如,您需要将\编码为\和 "as\"等。希望这会有所帮助。
关于azure - 如何在Azure搜索过滤器中使用保留字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47512458/