论tigergraph边的方向性

tiger边分类

tiger的边分为有向边,无向边。

有向边和无相边的区别是:界面上有向边有明显箭头,无向边就是直线。

注意: 有向边又有单向边,双向边。

无向边由于指定了边的起点类型和终点类型,而任何顶点的类型只能有一个,无所无向边其实还是有方向的。

只有起点和终点类型都是*的时候,才是真正的无向边。

单向边无法反向遍历。

 

无相边和双向边都可以反向遍历。

无向边的反向遍历结果相同。

双向边的反向遍历结果中边的类型不同。

双向边和有向边的本质差别

双向边其实无向边效果差不多。

双向边和有向边的本质差别在于查询方向。双向边可以指定两个方向查询,有向边根本不能反方向查询。

原因是tiger的查询语法范式定死了格式。

SELECT t FROM vSetVarName:s – ((eType1|eType2):e) -> (vType1|vType2):t

 

第一个横杠-前面必须是顶点集合(冒号后面是别名,别名可以省略)

依据这个范式,最精简的写法是:

source = SELECT s FROM source:s -()-> ;

举例说明:

source = SELECT t FROM source:s -(:e)-> :t

上面的写法无法写成(因为dest是顶点集合,不是顶点类型):

dest = SELECT t FROM :s -(:e)-> dest:t

tiger和arango边的方向性

arangodb里面的边都是有向边,但是遍历方向是可以指定的,也是支持反向遍历。

FOR vertext[] IN []

FOR v,e,p in[1..3]

OUTBOUND|INBOUND|ANY startVertex [EDGES]

FILTER ...

tiger的GSQL里面要实现arangodb的AQL中的设定方向的效果,最好的方式是创建边的时候就定下来这条边是单向边还双向边。如果是单向边,创建边的时候就定好了的出的还是进的,即OUTBOUND还是INBOUND的。

如果创建边的时候指定双向边,那么遍历就是ANY方式。

在tiger的query里面不能再直接指定边的方向性了。

 

另外,如果都是双向边,这是遍历默认相当于arangodb的ANY方向,如何指定方向呢?

猜你喜欢

转载自www.cnblogs.com/geektcp/p/10589564.html
今日推荐