nebula2.0 find path 能否支持边粒度设置方向

  • nebula 版本:2.0.1
  • 问题的具体描述:find path可以支持到,over边的时候方向(reversely/bidirect)的粒度区分到边吗,目前按语法是只能允许所有按单向、反向或者双向去找,不能允许类似A边反向B边双向。还是语法是能支持的呢?

FIND PATH 本身是没有这样的表达,用 MATCH 呢?

我们的场景是六度关系,nebula服务端2.0用match对内存压力太大,耗时也过高,貌似是因为和findpath使用的算法不同,只能抛弃了。find path确实是能满足性能,但是需要查询出来所有边的双向关系,再进行内存中逻辑过滤某些边的方向,留下来大概六分之一到三分之一的数据。感觉比较奇怪的是,findpath既然能支持所有边的方向,为什么不能支持到每条边的方向控制呀?

@jmq2020 我们能不能在 FIND PATH 增加细致的和跳数相关的方向控制呢,我感觉不是很容易表达这样的模式,而且这种条件在循环 BFS 过程中能加进去么?

另外,如果升级的话,FIND PATH 有一些优化、加上支持默认不取属性,也许取双向再过滤性能也较2.0现在的情况有一些提升。

有看到2.5之后的版本,find path是能使用边属性进行过滤的,那么是否就能通过where edge._type >0,来过滤出正向的路径,另外这样会不会导致性能的下降?

wey哥还在吗 :joy:

过滤我理解是没有额外的 cost 的,都是下推到扫数据算子本身减少数据量的哈,应该只会提升。

@jmq2020 可以纠错哈

1 个赞

明白了 多谢大佬

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