首页 > 解决方案 > 在 Azure 搜索的索引项中查找不在列表中的项

问题描述

我正在使用 Azure 搜索

我有下面的数据结构

[
    {
        "id": "7c064374-73ea-4d0c-c363-2801887b07cf",
        "companies": [
                {
                    "companyId": "6f8d235e-69b7-42f9-9917-79411754fef0",
                    "companyName": "Company"
                }
         ]
    }
]

如果我想查找帐户中存在 guid 的所有条目,则过滤器是

$filter=companies/any(c: c/companyId eq 'value to find')

仅获取要查找的值不在公司列表中的条目的语法是什么?

$filter=companies/any(c: c/companyId ne 'value to find')

将不起作用,因为它将返回索引中包含公司 ID 的任何条目,如果条目有 2 个公司,一个与条件匹配,一个不匹配,则该 ID 不足以将条目带回

保罗

标签: azureazure-cognitive-search

解决方案


https://docs.microsoft.com/en-us/azure/search/search-query-odata-collection-operators

$filter=companies/all(c: c/companyId ne 'value to find')


推荐阅读