两个密码查询之间的差异

古迪(Pratik Gujarati)

我正在尝试运行这两个密码查询,但我不了解它们之间的区别。此处的目的是在给定的两个节点之间找到多个路径,以使该路径中的transit_time之和为升序。

Q1:

MATCH p =(:`ml`  { placeId: 960 })-[:ETA*0..10]->(:`ml`  { placeId: 814 })
return p, p as allshortestPaths, 
REDUCE(time=0, r in relationships(p) | time+r.transit_time) AS totalTime 
ORDER BY totalTime ASC

Q2:

MATCH (from:`ml` { placeId: 960}), (to: `ml` {placeId: 814}) , 
paths = allShortestPaths((from)-[:ETA*]->(to)) 
WITH REDUCE(time = 0, rel in rels(paths) | time + rel.transit_time) 
AS totalTime, paths 
RETURN (totalTime) 
ORDER BY totalTime ASC

在这种情况下,我从中获得最佳结果。Q1这些操作也需要很长时间。还有其他更好的方法可以使用图形算法吗?我认为有可能使用Dijkstra算法来做到这一点,有关如何在此处指定cost_parameter以及如何使用的任何帮助都将非常有用。我正在使用py2neo和neo4j。

苏帕米

Neo4j有一个集成的工具来解释查询,实际上它不是在解释而是在分析。

您还可以在此处找到一些有关执行计划的文档,以解释每个操作。

具有复杂查询的执行计划示例: Neo4j执行计划示例

来源

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章