Neo4J Java API:检查是否可以从其他节点访问节点

时间:2014-01-14 13:06:34

标签: java graph neo4j

我正在使用Neo4J Java API,我想检查一个节点是否可以从另一个节点访问。图工厂算法似乎不包含类似的东西。

提前致谢

Altober

2 个答案:

答案 0 :(得分:2)

编辑(来自评论):实际上java会更高效 - 使用遍历api,从一个节点开始,遍历直到找到结束节点并停止。因此,您不必最终匹配我认为存在的每条可能路径

我可以考虑做一个最短的路径(或另一个算法http://docs.neo4j.org/chunked/milestone/tutorials-java-embedded-graph-algo.html)并检查长度:

 match (node1 {id:"1"}),(node2 {id:"2"}),p=shortestPath((node1)-[*]-(node2))
 return count(rels(p))

或者只是发现存在任何深度的路径:

    match (node1 {id:"1"}),(node2 {id:"2"}),p=(node1)-[*]-(node2) 
    return count(p)

不确定哪个便宜。

答案 1 :(得分:2)

您可以使用manual中描述的GraphAlgoFactory以及使用finder.findSinglePath取回的查找程序。我可能不会使用dijkstra而是使用最短路径或简单路径。请参阅GraphAlgoFactory API