find语法能找到非起始-终点的分支路径吗

find path 语法 ,比如 a ->b ->c
-d
指定起止点为ac , 如何能找到ad这样的分支,他的终点不是目标点c

你的示意图上面,a 和 d 不是不可达吗?

排版没对。。 是a->b->c->d 然后b->e 相当于子分支, 如果指定起止点a → d , 有没有方式可以找到a->b->e 这个分支

image
你的图是这样的对吧,:thinking: 感觉和指定 A D 没关系啊,你不是直接去查询 A 出发沿着某一个关系边可抵达的终点(D、E)对吗

你真实太贴心了 专门画个图。。 我其实想表达的意思是, 有没有办法能查询a 到 d范围之间 所有的路径,包括这种分叉a b e

:thinking: ,A- B-C-D 范围内的路径,和 A-B-E 没关系啊。除非 E 能连接到 D,现在 D-E 是路径不可达,你要咋整。


如果是这种路径 , 有办法在只知道a d 的情况下,把abcd ecd 都查询出来吗。。

:thinking: 其实你的需求是不是找出 A 流出的点路径,你后来改的那个是找出 D 流入的点路径对吗

其实我知道如果通过go 找d的流入就可以都找到。。 感谢解答。

:joy: 感觉我啥都没干,你就解决了自己的问题,你勾选自己的回复为解决方案吧

还是感谢你 , 其实自己心里明白查不出来也不合理。。 抱有侥幸心理看有没有知识盲区。。

1 个赞

不明觉厉。- -,下次可以画个图。

这个可以试着用 multi match 里的 optional match,表示 b–e这个分支是可选的,如果不存在也不影响 a----n 之间的路径查找哈我写的是伪代码,你可以自己探索一下

MATCH p=(a)--(b)-[:follow*4]-(n)
WHERE id(a) == “foo” AND id(n) == “bar"
OPTIONAL MATCH p1=(b)--(e)
RETURN p,p1 

ref: OPTIONAL MATCH - Nebula Graph Database 手册

1 个赞

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