【问题标题】:neo4j how to know you reach end of this pathneo4j 如何知道你到达了这条路的尽头
【发布时间】:2014-06-05 22:54:41
【问题描述】:

在neo4j 遍历期间,我想知道路径节点(完整路径)的端节点。但是使用下面的代码,它输出路径就像一旦到达一个节点,它就会输出(新)路径。所以这不是完整路径的结束。 如何识别全路径的结束节点。

for ( Path path :db.traversalDescription()
        .depthFirst()
        .relationships( Rels.KNOWS,Direction.OUTGOING )
        .traverse( node ) )
{
    output += path + "\n";
    System.out.println(output);
}

【问题讨论】:

  • 我打算编辑这个,但我不能 100% 确定 OP 在这里说什么。 OP,请澄清你的问题,很难理解你。这段代码每次访问一个节点时都会打印出一条路径。因此,如果您有一个图 A->B->C,您将得到一条路径 A->B,以及另一条路径 A->B->C。您是说只想打印找到的最长路径,不打印任何中间人?

标签: neo4j


【解决方案1】:

可以使用 path.endNode() 获取每条路径的最后一个节点(结束节点),也可以使用 path.nodes() 获取一个以最后一个元素为路径结束节点的 Iterable。

http://api.neo4j.org/current/org/neo4j/graphdb/Path.html#endNode()

但正如@FrobberOfBits 所写,遍历会给你所有可能的路径,所以没有进一步的限制条件或规则,你的问题是模棱两可的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-10
    • 2013-06-18
    相关资源
    最近更新 更多