0

使用 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 丢弃所有路径?

谢谢,奥利

4

1 回答 1

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);
 }

希望对你有帮助。。

于 2013-06-13T08:02:10.937 回答