2

我正在使用 Azure 搜索筛选器选项,如下所示

$filter=cityList/any(t: search.in(t, '1')) and name eq 'hi tech bar & restaurant' &search=*&scoringProfile=search-score&searchMode=Any&queryType=FULL

对于除保留字之外的所有单词过滤器都可以正常工作。

; / ? : @ = + &

谁能帮我找到如何在 Azure 搜索筛选器中使用保留字?

提前致谢。

4

1 回答 1

1

有两个级别的编码需要考虑。首先,OData 表达式本身。我假设您需要在字符串常量中使用特殊字符,在这种情况下,您需要编码的唯一字符是单引号,您可以通过加倍对其进行编码。例如:$filter=Name eq 'O''Neil'。第二级编码取决于您是使用 HTTP GET 还是 POST 进行搜索请求。如果你使用的是 Azure 搜索 .NET SDK,它会为你处理这个细节。如果您直接使用 REST API 并且使用 GET,则需要对过滤器表达式进行 URL 编码。如果您使用 POST,则需要像对任何其他 JSON 字符串一样对过滤器表达式进行编码。例如,您需要将\编码为\和“作为\”等。希望这会有所帮助。

于 2017-11-28T00:42:46.397 回答