azure - 如何在Azure搜索过滤器中使用保留字?

标签 azure azure-cognitive-search azure-search-.net-sdk

我正在使用如下所示的 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/

相关文章:

Azure 数据工厂管道成本

c# - Azure 认知搜索 - 如何使用 & 等保留字符进行搜索

c# - 如何在 Azure 搜索中的主记录下索引多个 blob?

azure - Microsoft.Azure.Search(sdk v3.0.3)未正确返回所有方面

.net - Azure 搜索 .Net SDK - 在调用ContinueSearch<T> 后组合 DocumentSearchResult<T> 类型的结果的建议方法是什么?

c# - 如何为长时间运行的 Azure 函数创建启动代码?

python - Azure 函数 - HTTP 触发器和响应 - Python

azure - 无法在 Azure Shell 中启动 Docker

search - 亚马逊云搜索体验

azure - Azure 搜索中的分组依据和计数