gpt4 book ai didi

neo4j - 图的任意两个节点之间的最长最短路径

转载 作者:行者123 更新时间:2023-12-01 11:41:51 35 4
gpt4 key购买 nike

我试图在我的 Neo4j 数据库中找到两个相距最远的节点。出于分析的目的,我将两个节点之间的最短距离视为它们之间的距离。因此,距离最远的两个节点之间的路径最长最短。我使用 Cypher 中的以下语法来查找最短节点。

给定两个节点,如 Neo4j 示例文档 http://docs.neo4j.org/chunked/milestone/query-match.html#match-shortest-path 中所示,我可以运行以下 Cypher 查询。

MATCH p = shortestPath((martin:Person)-[*..15]-(oliver:Person))
WHERE martin.name = 'Martin Sheen' AND oliver.name = 'Oliver Stone'
RETURN p

我的数据库有超过 1/2 百万个节点。蛮力方式显然需要很长时间。有没有简单或更快的方法来获得这两个节点?

[作为一个额外的皱纹..图表是加权的,但这个细节可以忽略。]

最佳答案

如果我没看错,你想要 all-pairs shortest path .这将为您提供一个列表,其中每个节点作为源以及到每个其他节点的最短路径。虽然它确实是按重量来做的,但你可以简单地为所有东西使用 1 的重量。

你必须自己在 Java 中实现它,因为 Cypher 没有任何东西。

关于neo4j - 图的任意两个节点之间的最长最短路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19469037/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com