2

我们有一个用例,我们需要使用图形数据库。周围有

10000 个节点和 1000000 条边(大约)。

现在我需要像这样查询。对于任何 2 个顶点,找到它们之间的所有可能路径。

origntDb 需要多长时间?我希望检索时间非常短。这是否受 orientDB 支持?

两个顶点的距离大约为 20。但每个顶点可能有大约 10 个出边。

4

2 回答 2

1

对于 Gremlin 中顶点 1 和 2 之间的所有路径,请执行以下操作:

g.v(1).out.loop(1){true}{it.object.id==2}.path

当然,如果你有循环,所有可能的路径都是无限的,所以你可能想要这样做:

g.v(1).out.loop(1){true}{it.object.id==2}.path[0..100]

...获得最多 100 条路径。您也可以这样做来删除循环路径:

g.v(1).out.simplePath.loop(2){true}{it.object.id==2}.path[0..100]

马尔科。

于 2013-01-26T16:37:55.970 回答
1

使用 OrientDB 捆绑的 shortestPath() 函数:

select shortestPath(#8:32, #8:10)

其中 2 个 RID 是 2 个节点的记录 ID。

于 2013-01-25T12:14:38.150 回答