Neo4j java:从多个起点遍历

时间:2014-02-02 17:53:57

标签: neo4j

我在Neo4j 2.0嵌入式任务中的任务是找到从多个节点到树根的路径,其中所有节点都位于其中。

因此,如果我们假设我有节点A,B和C,我想找到路径

A-->...-->root
B-->...-->root
C-->...-->root

对于此任务,我定义了一个TraversalDescription,当单独应用于每个起始节点时,它可以正常工作。现在我看到TraversalDescription的遍历方法不仅可以使用一个起始节点而且可以使用多个起始节点。所以我把所有的起始节点放到一个数组中,并将这个数组传递给traverse方法,如下所示:

Node[] startNodes = new Node[3];
startNodes[0] = node1;
...
Traverser traverse = td.traverse(startNodes);
for (Path p : traverse)
  System.out.println(p);

在这里,我希望能够获得我在上面描绘的所有路径。但是,我似乎只获得了起始节点数组中第一个元素的路径,即只有一个路径,尽管每个起始节点都有一个不同的路径。

现在我的问题是:出了什么问题?我的意图是该方法应该如何工作,还是我只是错误地使用它?

非常感谢你的答案,想法和提示!

1 个答案:

答案 0 :(得分:2)

您的完整遍历描述如何?我猜你正在使用错误的唯一性设置。默认值为NODE_GLOBAL,它只允许遍历访问任何节点一次。我建议使用NODE_PATH。