我正在尝试对Azure搜索中的多面搜索应用筛选器。不幸的是,我客户的某些搜索数据包含这样的&字符:
&facet=client&$filter=client eq 'Dunn & Bradstreet'
由于上面的示例是查询字符串的一部分,因此Dunn & Bradstreet
中的&符成为问题。
以下对转义符进行转义会导致错误:
&facet=client&$filter=client eq 'Dunn %26 Bradstreet'
使用Azure Search Explorer测试搜索查询时的错误是:
{
"error": {
"code": "",
"message": "Invalid expression: There is an unterminated string literal at position 34 in 'client eq 'Dunn '.\r\nParameter name: $filter"
}
}
在不破坏Azure搜索的字符串中转义&
符号是否存在一些神奇的解决方法?
答案 0 :(得分:2)
这似乎是Search Explorer中的错误。它对URL中的“与”号以外的字符进行编码。如果您对“&”号本身进行编码,Search Explorer会对它进行双重编码。我已经确认,如果您在直接调用REST API时对&符号进行编码,则它可以正常工作。
修正错误后,我将更新此答案。抱歉给您带来不便。