我正在开展一个项目,我必须处理图表...我正在使用图表通过公共汽车和自行车在两站之间获得路线.
事实是,我所有的关系都包含从关系的起点到结束所需的时间.
为了获得节点之间的最短路径,我使用了密码的最短路径函数.但是,最短的路径并不是最快的......
有没有办法让两个节点之间的所有路径都没有通过关系链接?
谢谢
编辑:
事实上,我改变了我的图表,使其更容易.所以我仍然有我的所有节点.现在,关系类型对应于从节点到另一个节点所需的时间.
密码的shortestPath函数给出了包含较少关系的路径.我希望它返回所有类型(时间)的添加最小的路径.这可能吗?
谢谢
Eve*_*man 11
在cypher中,要获得两个节点之间没有按关系链接的所有路径,并按权重中的总数排序,可以使用1.9中引入的reduce函数:
start a=node(...), b=node(...) // get your start nodes
match p=a-[r*2..5]->b // match paths (best to provide maximum lengths to prevent queries from running away)
where not(a-->b) // where a is not directly connected to b
with p, relationships(p) as rcoll // just for readability, alias rcoll
return p, reduce(totalTime=0, x in rcoll: totalTime + x.time) as totalTime
order by totalTime
Run Code Online (Sandbox Code Playgroud)
如果你只需要最短的话,你可以在结尾处加一个限制1.
归档时间: |
|
查看次数: |
9715 次 |
最近记录: |