Graph OrientDB深度遍历直到特定类

Graph OrientDB深度遍历直到特定类,graph,pattern-matching,orientdb,Graph,Pattern Matching,Orientdb,所以我有一个简单的图。最左边的节点是“团队”类。第二个最右侧(灰色)是“Sport”类节点 我需要找到所有与特定运动相关的球队 当我只有一个团队节点时,此查询有效: MATCH {class:Team, as: team} --> {class: Sport, maxDepth: 10} RETURN team.Abbreviation 在添加“Team”类的第二个节点后,我开始出现以下错误: java.lang.RuntimeException: Invalid pattern to

所以我有一个简单的图。最左边的节点是“团队”类。第二个最右侧(灰色)是“Sport”类节点

我需要找到所有与特定运动相关的球队

当我只有一个团队节点时,此查询有效:

MATCH {class:Team, as: team} --> {class: Sport, maxDepth: 10}
RETURN team.Abbreviation
在添加“Team”类的第二个节点后,我开始出现以下错误:

java.lang.RuntimeException: Invalid pattern to match!
如果我删除“maxDepth”,它会工作,但不会返回任何内容


我该怎么做才能让它工作?

这肯定是个bug,我正在检查它。 作为快速解决方法,您可以向模式中的第一个元素添加条件,以便强制执行器从那里开始:

 MATCH {class:Team, as: team, where:(true)} --> {class: Sport, maxDepth: 10}
 RETURN team.Abbreviation
更妙的是,从右侧移除“类”:

 MATCH {class:Team, as: team} --> {where: (@class = 'Sport'), maxDepth: 10}
 RETURN team.Abbreviation

这里的问题是模式的计算方向错误(从右到左),上面的工作迫使OrientDB从左到右对其进行计算

好消息,我刚刚对2.2.x分支进行了修复,现在原始查询工作正常。该修复程序将在2.2.30版本中发布