find path 点过滤是否有问题

提问参考模版:

  • nebula 版本:nebula 3.4.1
  • 部署方式:分布式
  • 安装方式: RPM
  • 是否上生产环境:Y
  • 硬件信息
    • 磁盘( 推荐使用 SSD)
    • CPU、内存信息
  • 问题的具体描述
  • 相关的 meta / storage / graph info 日志信息(尽量使用文本形式方便检索)
    现在查询两个点之间的最短路径,同时过滤掉一些带有敏感信息的路径。
    语句是这样的
find shortest path with prop from -4921766888481013368 to 815677140545765099  OVER ActualController BIDIRECT upto 2 steps YIELD path AS p  | YIELD $-.p as pp WHERE NOT ANY (a IN [ n in NODES($-.p) | properties(n).labels] WHERE a == "908" and a is Empty) and NOT ANY (a in [n in NODES($-.p) | properties(n).keyno] WHERE a in ["715f4a0a608f1e6d4a772c31ade1b171", "he7910e63f79702ea812d50f082dfaec", "h1a3ef7ad8ec2e56ba43e250225d1d28", "g599bafb4da74aa069cc9b67a39992e0", "a0ed6d61d21271179021367cac5d4420", "b2fbc4155d4781978f94ef67bc61c1e7"]) and ALL(a in [n in NODES($-.p) | properties(n).isinvestor] WHERE a=="0")

但是发现返回结果是空,分析后发现去掉最后一个条件 ALL(a in [n in NODES($-.p) | properties(n).isinvestor] WHERE a=="0") 之前返回是正常的,这个条件过滤的时候,因为整个路径有Company 和 Person ,但是Person是没有isinvestor 字段的, 所以导致这个条件全部返回false了,于是想最后一个条件改成 ALL(a in [n in NODES($-.p) | properties(n).isinvestor] WHERE a=="0" or a is empty) 发现也不对。

想问问哪里出现问题了?
下面是去除语句最后一个all条件后返回的结果:

<(-4921766888481013368 :Company{companytype: 0, create_time: 1718387125, credit_code: "xxxxx", econkind: "有限合伙企业", hasimage: true, isinvestor: "0", isipo: "0", ismain: __NULL__, keyno: "fc9ac2c207a8f102d0c1e6d372a501df", labels: "", name: "yyyyyy", org: 0, partner_source: "0", registcapi: "100.000", shortstatus: "存续", supernode: false})<-[:ActualController@0 {create_time: 1718387366, endid: "fc9ac2c207a8f102d0c1e6d372a501df", percent_total: 79.8674, startid: "pb9ac28faba8285ca3d516ab6a91235f", type: "0"}]-(-5219323564675346571 :Person{create_time: 1719305699, hasimage: true, job: __NULL__, keyno: "pb9ac28faba8285ca3d516ab6a91235f", name: "cccc", supernode: false})-[:ActualController@0 {create_time: 1718387366, endid: "f625a5b661058ba5082ca508f99ffe1b", percent_total: 47.6956, startid: "pb9ac28faba8285ca3d516ab6a91235f", type: "0"}]->(815677140545765099 :Company{companytype: 0, create_time: 1718387125, credit_code: "91320594088140947F", econkind: "股份有限公司(非上市、自然人投资或控股)", hasimage: true, isinvestor: "0", isipo: "0", ismain: __NULL__, keyno: "f625a5b661058ba5082ca508f99ffe1b", labels: "", name: "企查查科技股份有限公司", org: 0, partner_source: "0", registcapi: "36225.000", shortstatus: "在业", supernode: false})>

我是这么理解的:
这里应该用 a is null 来写。因为 a 已经被定义了 ,所以 a 不会是 empty,只会是 null
properties(v).isinvestor 这个有可能是 empty

改成 null 在我自己的环境里验证过是 OK 的

此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。