Azure 搜索查询字符串中的文字 & 符号
Literal Ampersands in Azure Search Query String
我正在尝试对 Azure 搜索中的分面搜索应用筛选器。不幸的是,我客户的一些搜索数据包含这样的符号字符:
&facet=client&$filter=client eq 'Dunn & Bradstreet'
由于上述示例是查询字符串的一部分,因此 Dunn & Bradstreet
中的 & 号是一个问题。
如下转义 & 符号会导致错误:
&facet=client&$filter=client eq 'Dunn %26 Bradstreet'
使用 Azure 搜索资源管理器测试搜索查询时出现的错误是:
{
"error": {
"code": "",
"message": "Invalid expression: There is an unterminated string literal at position 34 in 'client eq 'Dunn '.\r\nParameter name: $filter"
}
}
是否有一些神奇的变通方法可以在不破坏 Azure 搜索的情况下转义字符串中的 &
符号?
这似乎是搜索浏览器中的错误。它对 URL 中的字符进行编码,而不是 & 符号。如果您对符号本身进行编码,搜索资源管理器 double-encodes 它。我已经确认,如果您在直接调用 REST API 时对 & 符号进行编码,它会正常工作。
错误修复后我会更新此答案。抱歉给您带来不便。
更新:我们修复了搜索浏览器中的问题
我正在尝试对 Azure 搜索中的分面搜索应用筛选器。不幸的是,我客户的一些搜索数据包含这样的符号字符:
&facet=client&$filter=client eq 'Dunn & Bradstreet'
由于上述示例是查询字符串的一部分,因此 Dunn & Bradstreet
中的 & 号是一个问题。
如下转义 & 符号会导致错误:
&facet=client&$filter=client eq 'Dunn %26 Bradstreet'
使用 Azure 搜索资源管理器测试搜索查询时出现的错误是:
{
"error": {
"code": "",
"message": "Invalid expression: There is an unterminated string literal at position 34 in 'client eq 'Dunn '.\r\nParameter name: $filter"
}
}
是否有一些神奇的变通方法可以在不破坏 Azure 搜索的情况下转义字符串中的 &
符号?
这似乎是搜索浏览器中的错误。它对 URL 中的字符进行编码,而不是 & 符号。如果您对符号本身进行编码,搜索资源管理器 double-encodes 它。我已经确认,如果您在直接调用 REST API 时对 & 符号进行编码,它会正常工作。
错误修复后我会更新此答案。抱歉给您带来不便。
更新:我们修复了搜索浏览器中的问题