我需要在 Azure 搜索索引中搜索 JSON 数据,但查询无法过滤 Json 数组数据。
{
"select": "id, data/prices",
"filter": "data/prices ne null"
}
收到错误:
无效表达式:二元运算符“NotEqual”的操作数不是单个值。二元运算符要求两个操作数都是单个值。 参数名称:$filter
有没有办法也过滤数组类型的数据?
以下是我的项目数据,可在索引中找到。
"data": {
"prices": [
{
"currency": "IN",
"price": 99,
}
]
}
提前致谢!
下面的过滤器检索“prices”数组中至少一个元素具有非空货币和非零价格的文档。
{
"select": "id, data/prices",
"filter": "data/prices/any(p: p/currency ne null and p/price ne 0)"
}
索引字段:
输出:
上面的过滤器表达式检查每个文档的“data”对象内“prices”数组中的每个元素。它会过滤“prices”数组中至少一个元素具有非空货币 (
p/currency ne null
) 和非零价格 (p/price ne 0
) 的文档。
我使用的示例数据:
[
{
"id": "1",
"data": {
"prices": [
{
"currency": "IN",
"price": 99
}
]
}
},
{
"id": "2",
"data": {
"prices": [
{
"currency": "IN",
"price": 75
}
]
}
},
{
"id": "3",
"data": {
"prices": [
{
"currency": "GBP",
"price": 30
}
]
}
},
{
"id": "4",
"data": {
"prices": [
{
"currency": null,
"price": 0
}
]
}
}
]