使用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);
}
我希望它能帮助你…