Match和Find Path:Can’t solve the start vids

这个标题论坛已经有人提过问题了,但是不是我想问的。

提问参考模版:

  • nebula 版本:2 nightly
  • 部署方式(分布式 / 单机 / Docker / DBaaS):Docker

Match on VID的方式下,查询给定的两个vid是不是一度好友 用match有解决方案吗?
find path也是可以的,不过没有过滤条件,我想利用match的过滤条件 实现find path的功能 可以吗?

执行语法:
MATCH p=(v) -[e:follow]-(v2) WHERE id(v)== "player102" and id(v2) == 'player135' RETURN id(v2);

报错:
Can't solve the start vids from the sentence: MATCH p = (v)-[e:follow]-(v2) WHERE ((id(v)=="player102") AND (id(v2)=="player135")) RETURN id(v2)

用今天的 master 再来查询(docker 要今天晚上出镜像),可以用上述的 match 来判断,如果有结果就说明是一度好友,没有结果就不是

1赞

点赞 我明天早上试试
这些功能改动 2.0 ga会带上吗?

v v2 得有tag

1赞

问题解决了,感谢
有个疑问?
match的原理是通过索引找到start vid,然后按照条件遍历和过滤。有介绍match原理的文章吗?
这些功能改动 2.0 ga会带上吗?

(user@nebula) [nba]> MATCH p=(v) -[e:follow]-(v2) WHERE id(v)== "player102" and id(v2) == 'player135' RETURN p;
+----------------------------------------------------------------------------------------------------------------------------------------------+
| p                                                                                                                                            |
+----------------------------------------------------------------------------------------------------------------------------------------------+
| <("player102" :player{age: 33, name: "LaMarcus Aldridge"})<-[:follow@0 {degree: 80}]-("player135" :player{age: 28, name: "Damian Lillard"})> |
+----------------------------------------------------------------------------------------------------------------------------------------------+
Got 1 rows (time spent 13546/17643 us)

Wed, 17 Mar 2021 02:35:06 UTC

@yee @min.wu

1赞

很好的建议,后期可以出一些 MATCH 实现介绍的一些文章,也请 @steam 来给 DEV 们约稿。

这个改动会在 GA 中!我们最近也在持续的优化索引选择的问题,会尽量的让选不中索引的错误情况降低。这里涉及到复杂表达式的处理,只能一步步来完善。MATCH 的功能要到下个版本来进一步的完善。

2赞

代码都还在一直改,这个介绍原理就先别急哈

1赞

浙ICP备20010487号