【问题标题】:Escape single quotes in Azure Search query在 Azure 搜索查询中转义单引号
【发布时间】:2018-08-01 15:34:25
【问题描述】:

我在过滤条件下的数据中有一个单引号。

示例:大卫·奥尼尔。

所以如果我们在搜索资源管理器中给出这个,

*&$count=true&$filter=Name eq 'David O'Neil'

我们如何避免过滤器中的单引号。

更新 1:如果我们使用单引号来转义该单引号,则会出现 0 条记录。

更新 2: 也不能使用反斜杠()。

【问题讨论】:

    标签: api search filter azure-cognitive-search


    【解决方案1】:

    OData 过滤器中的单引号通过加倍转义:

    $filter=Name eq 'David O''Neil'
    

    由于这导致您的记录为零,我猜您的数据还有其他问题(也许 O'Neil 中的撇号不是 ASCII 字符 39 而是更华丽的东西?)

    【讨论】:

    • 双引号似乎对我不起作用。我得到 [AzureSearchServiceRESTCallException: {"error":{"code":"","message":"Invalid expression: Syntax error: character '\\' is not valid... 它试图用两个反斜杠转义表达式。不要变成 /.*don\\'\\'t.*/
    • @VivekAyer 该表达式看起来像 Lucene 正则表达式查询,而不是过滤器。只有 filter 参数使用 OData 语法,上述答案不适用于其他上下文。如果您仍然遇到问题,请发布一个单独的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-24
    • 1970-01-01
    相关资源
    最近更新 更多