使用get subgraph能不能跳过有特殊标记的结点

  • nebula 版本:3.5.0
  • 部署方式: 单机
  • 安装方式: RPM
  • 是否上生产环境: N

在使用get subgraph语句中,我们能不能跳过一些有特殊标签的结点?
例如我给一些超级结点标上了bool类型的is_skip的属性,在检索子图的时候能不能跳过所有is_skip==true的结点

可以啊,比如 超级点的tag是 person类型
Get Subgraph with prop N steps From 'xxx' OUT edgeType WHERE $$.person.is_skip is EMPTY OR $$.person.is_skip == false YIELD vertices AS nodes, edges AS relationships

参考 GET SUBGRAPH - NebulaGraph Database 手册

2 个赞

这样写会出现not support in where sentence.这是什么情况呢?

我看文档上写的,Get Subgraph 不是仅支持AND 吗? 不支持OR

  • 仅支持AND运算符。

将条件$$.person.is_skip is EMPTY OR $$.person.is_skip == false 替换为 $$.person.is_skip <> true试试?

1 个赞

请问这个OR 可以用吗? 我本地测试 不支持OR 呀
version 3.4.1

如文档所写,目前不支持OR的

可以考虑用match?

这个问题的最终使用的方案是不管子图本身检索的过程,在子图检索完的结果中,再按照条件进行过滤

Get Subgraph with prop N steps From 'xxx' OUT edgeType  YIELD vertices AS nodes, edges AS relationships | 
yield [v in $-.nodes where v.Person.is_skip == false or v.Claim.is_skip == false ] as nodes, [e in $-.relationships where e.is_skip == false] as re  

这样写效率比较低,但是能够兼容or的语句,能够完成相应的检索

1 个赞

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