【问题标题】:Will Azure Search Filter Queries Perform Type Coercion?Azure 搜索筛选器查询会执行类型强制吗?
【发布时间】:2019-05-24 21:34:58
【问题描述】:

对于布尔值,Azure 搜索筛选器查询是否会执行类型强制?用户可能在我的应用程序中为他们的搜索选择的每个可过滤值都是一个字符串值。在构建我的 OData 查询时,我不想执行逻辑来检查这个布尔值以在其他十几个值只是字符串时相应地调整查询字符串。我只是希望能够将每个值都包含在单引号中,这种方式的逻辑更简单,而不是将值包含在除布尔值等之外的所有内容中的单引号中。

在构建索引时,我没有办法对此进行测试,但我正在为此编写客户端代码,以准备它何时存在。

因此,例如,假设我有一个名为“isDeleted”的布尔标志,它指示我的数据库中的一条记录是否已被“sudo”删除,它被添加到我的搜索索引中。如果我将以下过滤器添加到 Azure 搜索的有效负载帖子中,我是否会返回该值为 true 的记录:

... "filter": "isDeleted eq 'true'" ...

请注意,我将“true”值用单引号括起来,表示它可能是一个字符串。 Azure 搜索引擎会对此执行类型强制并拉回记录,还是仅是有效的过滤器

... "filter": "isDeleted eq true" ...

谢谢!

【问题讨论】:

    标签: odata azure-cognitive-search


    【解决方案1】:

    Azure 搜索仅支持 OData 标准中定义的类型转换。具体来说,支持扩大数字转换,这就是为什么您可以将双精度数与整数进行比较的原因。 Azure 搜索不允许任何与筛选表达式中的字符串的自动转换。

    【讨论】:

      猜你喜欢
      • 2021-06-01
      • 2019-09-26
      • 1970-01-01
      • 2019-08-05
      • 1970-01-01
      • 1970-01-01
      • 2021-09-02
      • 1970-01-01
      • 2021-03-06
      相关资源
      最近更新 更多