当前位置:  开发笔记 > 人工智能 > 正文

使用Neo4j 3.1.0版本进行Cypher查询以查找最长路径

如何解决《使用Neo4j3.1.0版本进行Cypher查询以查找最长路径》经验,为你挑选了1个好方法。

任何人都可以使用neo4j 3.1.0版本发送Cypher查询来找到两个节点之间的最长路径。



1> Martin Preus..:

查找最长路径的图算法未实现。

这是一个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

而且,在查询(方向和关系类型)不受限制的情况下,查询将查找所有非定向路径。

您应该限制路径查询,或者尝试两种方法来解决没有最长路径的问题。

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有