代码之家  ›  专栏  ›  技术社区  ›  pdaniels0013

Azure搜索筛选器查询将执行类型强制吗?

  •  0
  • pdaniels0013  · 技术社区  · 7 年前

    特别是对于布尔值,Azure Search filter查询是否会执行类型强制?用户在我的应用程序中为搜索选择的每个可筛选值都是一个字符串值。在构建OData查询时,我不希望必须执行逻辑来检查这一个布尔值,以便在其他十几个值只是字符串时相应地调整查询字符串。我只想把每一个值都用一个引号括起来,这样逻辑就更简单了,而不是把除布尔值以外的所有值都用一个引号括起来。

    当我们的索引正在构建时,我没有办法测试这个,但是我正在为此编写客户端代码,为它的存在做准备。

    例如,假设我有一个名为“isDeleted”的布尔标志,它指示数据库中的一条记录是否被“sudo”删除,并添加到搜索索引中。如果我将以下筛选器添加到我的负载发布到Azure Search,我是否会获得此值为真的记录:

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

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

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

    谢谢!

    1 回复  |  直到 7 年前
        1
  •  0
  •   Bruce Johnston    7 年前

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

    推荐文章