内置边属性

对于双向关系,比如相互关注,如果系统能够提供边的内置属性both,当A->B ,B->A时,A与B的边的both=1,这样在查询A相互关注的用户时会比较方便和高效

nebula 在底层存储的时候是保存了反向边,在 go 查询的时候可以通过 REVERSELY 来反向查找

感谢回复~~

这个只是用来取反向 ,目前的需求是需要取双向

match (a) – (b)

这个应该是 出 和 入吧,相当与BIDIRECT,我理解的对吗

1 个赞

其实这个优化不需要新增属性,只要在storage这里拿出边入边的终点然后做交集就可以

嗯,是的 不知道这个需要多大的优化成本

match (a)->(b)->© where id© == id(a) AND id(a) == 123 ?

:+1: 这样应该确实可行,但不知道在数据量大的情况下效率怎么样,比如a->b是万级别的数量,没有看过内部的查询计划实现,如果是拆分成子查询,估计效率会比较低

性能可能有问题。

GO FROM X OVER Y YIELD Y._dst
INTERSECT
GO FROM X OVER Y REVERSELY YIELD Y._dst

这样也可以,优化得考虑整个过程下推到storage,目前很难做得很优雅的样子 :thinking:

嗯 希望后面越来越强大