我们有一个用例,我们需要使用图形数据库。周围有
10000 个节点和 1000000 条边(大约)。
现在我需要像这样查询。对于任何 2 个顶点,找到它们之间的所有可能路径。
origntDb 需要多长时间?我希望检索时间非常短。这是否受 orientDB 支持?
两个顶点的距离大约为 20。但每个顶点可能有大约 10 个出边。
对于 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]
马尔科。
使用 OrientDB 捆绑的 shortestPath() 函数:
select shortestPath(#8:32, #8:10)
其中 2 个 RID 是 2 个节点的记录 ID。