【问题标题】:Azure Search, match array with given arrayAzure 搜索,将数组与给定数组匹配
【发布时间】:2020-03-08 00:35:16
【问题描述】:

我想匹配两个数组。这在 Azure 搜索中可行吗?

所以我有一个索引,其中包含 DataType.Collection(DataType.String) 类型的字段、语言。

索引如下:

{
    "@odata.context": "",
    "value": [
        { id = 1, languages = ["nl","en","fr","de"] },
        { id = 2, languages = ["nl","de"] },
        { id = 3, languages = ["nl"] }
    ]
}

所以现在我想过滤结果。我尝试使用 search.in(languages, 'fr,de', ',') 并希望得到 1 和 2 回来。但我得到了例外:

无效的表达式:调用名为“search.in”的函数的参数不是单个值。此函数的所有参数必须是单个值。 参数名称:$filter

那么,在天蓝色搜索中,我如何过滤一个包含另一个数组的数组。

【问题讨论】:

    标签: c# arrays azure azure-cognitive-search azure-search-.net-sdk


    【解决方案1】:

    答案是结合两个功能。所以你得到以下函数:

    languages/any(l: search.in(l, 'fr,de', ','))
    

    然后你比较两个数组并返回与数组中的一项匹配的数组。

    【讨论】:

      猜你喜欢
      • 2012-10-04
      • 1970-01-01
      • 1970-01-01
      • 2021-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-15
      • 2015-01-03
      相关资源
      最近更新 更多