【发布时间】:2018-08-12 23:42:55
【问题描述】:
我正在尝试在 Neo4j 中使用 ShortestPath。 我想为每个节点找到它到具有给定属性的任何节点的最短路径。
换句话说,对于任何节点 n1,我想要到具有特定属性的任何节点 n2、n2 的最短路径的最小长度。
我目前使用以下查询,但我认为它效率低下,因为它必须计算 n1 和 n2 之间的所有最短路径。更聪明的方法是,一旦我们找到length(path)==1 这样的路径,就停止查找。
MATCH path = shortestpath((n1:Node {has_ppt: False})-[:KNOWS]-(n2:Node {has_ppt: True}))
RETURN n1,n2,length(path)
LIMIT 5
有谁知道如何以不同的方式做到这一点?谢谢
【问题讨论】:
-
您的图中有多少
n2节点(具有该特定属性)? -
n1 ~1M 和 n2~10k。
标签: neo4j cypher shortest-path