我正在使用Neo4J Java API,我想检查一个节点是否可以从另一个节点访问。图工厂算法似乎不包含类似的东西。
提前致谢
Altober
答案 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