Bu iki cypher sorgusunu çalıştırmaya çalışıyorum ve aralarındaki farkı anlamıyorum. Buradaki amaç, belirli iki düğüm arasında birden fazla yol bulmaktır, böylece bu yoldaki transit_time toplamı artan sıradadır.arasındaki fark
S1: Bu ise
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
ben Q1
en iyi sonucu almak Ayrıca bu işlemler çok uzun zaman alabilir: Q2
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
. Bunu yapmak için daha iyi bir yol, grafik algoritmalarını kullanıyor olabilir mi? Dijkstra algoritmasını kullanarak bunun maliyet_parametrenin nasıl belirtileceğine ve nasıl kullanılacağına dair herhangi bir yardımın yapılmasının mümkün olduğunu düşünüyorum. Py2neo ve neo4j kullanıyorum.