Graph 从目标顶点(OrientDB)上的遍历和筛选中选择路径

Graph 从目标顶点(OrientDB)上的遍历和筛选中选择路径,graph,orientdb,shortest-path,graph-traversal,Graph,Orientdb,Shortest Path,Graph Traversal,我是graph数据库和OrientDB的新手,非常感谢您的耐心 我使用以下SQL查询为使用GratefulDeadConcerts数据库的两个顶点之间的最短路径生成一组扩展结果: select expand(sp) from (select shortestPath(#9:2,#9:15,'BOTH') as sp) 无论出于何种原因,使用无别名展开都不会产生任何结果,但这并不是一个真正的问题 我想要的不是最短路径,而是潜在路径和分支的集合 我尝试过使用travesedVertex: SELE

我是graph数据库和OrientDB的新手,非常感谢您的耐心

我使用以下SQL查询为使用GratefulDeadConcerts数据库的两个顶点之间的最短路径生成一组扩展结果:

select expand(sp) from (select shortestPath(#9:2,#9:15,'BOTH') as sp)
无论出于何种原因,使用无别名展开都不会产生任何结果,但这并不是一个真正的问题

我想要的不是最短路径,而是潜在路径和分支的集合

我尝试过使用travesedVertex:

SELECT traversedVertex(-1) FROM ( TRAVERSE out() FROM #9:2 WHILE $depth <= 10 )

感谢您的帮助。

首先,$path是当前路径的字符串表示形式。 其次,可以在外部查询的where子句上筛选目标列。试试这个:

SELECT 
   $path 
FROM 
   ( TRAVERSE 
        out() 
     FROM 
        #9:2 
     WHILE 
        $depth <= 10 ) 
WHERE 
   @rid = #9:15
我得到以下输出:

这就是你要找的吗

如果不添加where子句,则会得到以下输出:

我回答了你的问题吗?我的问题已经回答了。没有其他的路径是以9:15作为从9:2开始的目的地。谢谢,现在我明白了。这有助于我理解路径。我不懂的是如何获得多条路径。我已经编辑了我的问题我的查询语法允许您获得多条路径,但遍历只有一条路径指向指定的目的地我已经回答了您的初始问题,因此如果您认为其他问题不同,请您将我的答案标记为正确,并为其他问题发表另一篇帖子。。。
SELECT 
   $path 
FROM 
   ( TRAVERSE 
        out() 
     FROM 
        #9:2 
     WHILE 
        $depth <= 10 ) 
WHERE 
   @rid = #9:15