Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OrientDB从边缘到混乱_Orientdb_Traversal_Vertex - Fatal编程技术网

OrientDB从边缘到混乱

OrientDB从边缘到混乱,orientdb,traversal,vertex,Orientdb,Traversal,Vertex,我刚刚使用图形数据库,对OrientDB中的From/To或In/Out的概念有点困惑 定义哪个顶点是从哪个顶点开始的,哪个顶点是到哪个顶点的最好方法?或者两者兼而有之,例如,在社交网络中,什么时候是联系关系。在我看来,这种混淆的大部分来自Apache TinkerPop的边缘符号。OrientDB历史上采用TinkerPop作为其图形API(这里有些东西正在改变,因此在V3.0中会有一个不依赖ApacheTinkerpop API的本机文档/图形API,但我们仍将保持对TinkerPop 3.

我刚刚使用图形数据库,对OrientDB中的From/To或In/Out的概念有点困惑


定义哪个顶点是从哪个顶点开始的,哪个顶点是到哪个顶点的最好方法?或者两者兼而有之,例如,在社交网络中,什么时候是联系关系。

在我看来,这种混淆的大部分来自Apache TinkerPop的边缘符号。OrientDB历史上采用TinkerPop作为其图形API(这里有些东西正在改变,因此在V3.0中会有一个不依赖ApacheTinkerpop API的本机文档/图形API,但我们仍将保持对TinkerPop 3.x的支持),因此符号是相同的

Apache TinkerPop使用OUT/IN来定义连接到顶点的边和连接到边的顶点:

  • 给定一个顶点,输出边由OUT引用,输入边由IN引用(到目前为止还不错)
  • 给定一条边,它的起点(它来自的顶点)由OUT(哎哟!)标识,终点(它到达的顶点)由IN标识

这里出现的问题是:对于初学者来说,把边遍历看作是<代码> OUT+OUT >:

是很自然的。
vertex -out-> edge -out-> anotherVertex
但不幸的是,这是错误的

进行直尺遍历的正确方法是
out+in

vertex -out-> edge -in-> anotherVertex
还可以使用
输入+输出
向后遍历边

正如我之前写的,我觉得这非常不直观,一开始我也有这个问题。IMHO边缘连接的最佳符号应该是从/
,而不是中的输出/
,但它现在是一个标准,所以我们不能做太多

我唯一能告诉你的是,只要稍加练习,它就会变得自然

另一个考虑因素是社交网络,通常是不打算有方向的边缘(在社交网络中,边缘的方向并不重要,事实上我是你的朋友也意味着你是我的朋友)。Apache TinkerPop没有无向边的概念,因此您只需使用有向边并在遍历它们时忽略方向(例如,使用
both()
操作符或
both
方向)