查询Azure搜索并仅返回匹配结果作为响应

问题描述

我们正在使用Azure搜索为客户端系统提供搜索后端,但是我在子数组上进行过滤并仅返回我需要的数据时遇到了麻烦。

使用查询时:$select=en,products&$filter=products/any(product: search.in(product/reference,'myreference'))我得到以下数据集:

{
    "@odata.context": "our-azure-endpoint","value": [
        {
            "@search.score": 1,"hashA": "abcdefghijklmnopqrstuvwxyz","en": [
                {
                    "enProperty": "en Property",}
            ],"products": [
                {
                    "id": 1,"reference": "a-product-reference"
                },{
                    "id": 2,"reference": "myreference"
                }
            ]
        }
    ]
}

这已正确过滤,但是当我希望products的数据集仅包含在“ myreference”上具有匹配引用的对象时,它将返回products数组中的所有对象都。我尝试使用过滤器products/all,除非所有子项都与该引用匹配,否则该过滤器显然不会返回任何结果。

是否有一种方法可以告诉Azure搜索仅返回与参考匹配的子项product,还是我需要滚动它提供给我的数据集,然后从客户端选择正确的数据?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)