Neo4j:从给定的开始节点找到所有触及所有关系的路径



使用Neo4j,我正在处理一个非常简单的模型,该模型由五个节点a ..E和它们之间的八个关系组成。对于一个给定的起始节点,我想要得到与模型的每个关系相关的所有路径。每个关系只能碰一次。

我的代码如下:

TraversalDescription traversal = Traversal.description().uniqueness( Uniqueness.RELATIONSHIP_GLOBAL);
Traverser t = traversal.traverse( getNode("C"));
for ( Path position : t )
{
    if( position.length() == 8 ) {
        System.out.println("Solution found");
    }
}

我的问题是,遍历器没有返回长度为8的所有可能路径,而只有一个。

是否有办法告诉遍历器或遍历描述抛出所有路径?

谢谢,奥利

您是否尝试过使用Cypher查询?比如

start n = node:someIndex(name='C') match p=n-[RELATION*8]->(x) return x, length(p) 

您也可以尝试使用评估器,它可以帮助您找到具有一定深度的路径。

Evaluation evaluate(Path path) {
return path.length() == 8 ? Evaluation.INCLUDE_AND_PRUNE : Evaluation.EXCLUDE_AND_CONTINUE);
 }

我希望它能帮助你…

最新更新