我想在我的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
Run Code Online (Sandbox Code Playgroud)
我的数据库有超过50万个节点.蛮力的方式显然需要很长时间.有没有简单或更快的方法来获得这两个节点?
[作为一个额外的皱纹...图表被加权,但这个细节可以忽略.]