任何人都可以使用neo4j 3.1.0版本发送Cypher查询来找到两个节点之间的最长路径。
查找最长路径的图算法未实现。
这是一个Cypher查询,它获取所有路径并按大小对它们进行排序:
// get the nodes MATCH (a:Node), (b:Node) WHERE ID(a) = 14 AND ID(b) = 7 WITH a,b // match all paths MATCH p=(a)-[*]-(b) // return the longest RETURN p, length(p) ORDER BY length(p) DESC LIMIT 1
但是,对查询没有任何限制,这可能不适用于大型图。在无向图中找到最长的路径很昂贵:https://en.wikipedia.org/wiki/Longest_path_problem
而且,在查询(方向和关系类型)不受限制的情况下,查询将查找所有非定向路径。
您应该限制路径查询,或者尝试两种方法来解决没有最长路径的问题。