【发布时间】:2019-07-16 16:42:40
【问题描述】:
我正在尝试对 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 搜索的字符串中转义 & 符号?
【问题讨论】:
-
Apparently 转义字符是`\`。
-
@500-InternalServerError 这是针对 Lucene 语法的。问题是关于 OData 过滤器语法。
-
@PoorInRichfield 您发现了什么错误?您如何发送请求——.NET SDK、Azure 门户中的搜索资源管理器、直接调用 REST API...?请编辑您的问题以提供更多详细信息。谢谢!
-
@Bruce Johnston 我更新了问题以反映错误消息。在 & 符号前加一个“\”并不能解决问题。我想我可以在将数据加载到搜索索引中时对数据进行 HTML 编码,因此数据中不存在与号,但这并不理想。
-
您在搜索字符串中尝试过
&?
标签: c# query-string urlencode azure-cognitive-search