选择满足谓词的嵌套对象

时间:2019-08-08 09:56:16

标签: azure-cognitive-search

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

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

示例,在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"
    }
  ]
}

1 个答案:

答案 0 :(得分:1)

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