【问题标题】:Selecting nested objects which satisfy a predicate选择满足谓词的嵌套对象
【发布时间】:2019-08-08 22:02:54
【问题描述】:

在 Azure 搜索中,是否可以在数组(Collection(Edm.ComplexType) 字段)中选择满足谓词的对象?

如果数组中的任何对象满足谓词,则使用https://docs.microsoft.com/en-us/azure/search/search-query-understand-collection-filters#correlated-versus-uncorrelated-search 指定的任何运算符返回整个根对象。

例如,给定 Azure 搜索中的以下对象:

{
  "arrayOfObjects": [
    {
      "id": 1,
      "foo": "a"
    },
    {
      "id": 2,
      "foo": "b"
    },
    {
      "id": 3,
      "foo": "b"
    }
  ]
}

是否可以只选择 foo 等于“b”的嵌套对象,使搜索响应如下所示:

{
  "arrayOfObjects": [
    {
      "id": 2,
      "foo": "b"
    },
    {
      "id": 3,
      "foo": "b"
    }
  ]
}

【问题讨论】:

    标签: azure-cognitive-search


    【解决方案1】:

    不,这是不可能的。 Azure 搜索中的查询以文档为粒度运行,而不是文档中的对象。一种可能的解决方法是对您的索引进行建模,以使各个对象成为顶级文档。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-25
      • 2017-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多