使用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但只有一个的所有可能路径。
有没有办法告诉Traverser或TraversalDescription丢弃所有路径?
谢谢, 奥利
答案 0 :(得分:0)
您是否尝试过使用Cypher查询?它可能像
start n = node:someIndex(name='C') match p=n-[RELATION*8]->(x) return x, length(p)
您也可以尝试使用Evaluators,它可以帮助您找到具有一定深度的路径。
Evaluation evaluate(Path path) {
return path.length() == 8 ? Evaluation.INCLUDE_AND_PRUNE : Evaluation.EXCLUDE_AND_CONTINUE);
}
我希望对你有所帮助..