You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Weaviate嵌套对象Reference过滤结果不符合预期求助

Weaviate Reference过滤器查询结果不符合预期的解决方法

你的问题出在当前的查询逻辑上:And操作符是针对整个用户对象的两个独立条件——只要用户名下存在任意一辆车是Saturn,并且存在任意一辆车是Imprezza(不管是不是同一辆),就会被匹配。Zach的对象里刚好有一辆Saturn的车和一辆Imprezza的车,所以被误命中了。

要实现“筛选出拥有同一辆车同时满足make=Saturn且model=Imprezza的用户”,需要用Nested操作符把两个条件绑定到同一个car对象层级下,确保两个条件作用于同一辆汽车。

正确的查询语句如下:

where: {
  operator: Nested,
  path: ["car"],
  inner: {
    operator: And,
    operands: [
      {
        path: ["Car_class", "make"],
        operator: Equal,
        valueText: "Saturn"
      },
      {
        path: ["Car_class", "model"],
        operator: Equal,
        valueText: "Imprezza"
      }
    ]
  }
}

说明:

  • Nested操作符指定要针对car这个嵌套数组进行内部条件判断
  • inner里的And操作符确保同一辆car对象同时满足make和model的条件
  • 内部条件的path不再需要包含car,因为已经在Nested的path里指定了层级

这样查询就只会返回name为Bob的对象,符合你的预期。

内容的提问来源于stack exchange,提问作者zakaria hamdane

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 08:40:25