[英]Compute all the relationships between 2 nodes
我正在嘗試計算2個節點之間的所有關系:
對我而言, 最短路徑 , 所有 最短 路徑和apoc.algo.dijkstra都可以正常工作。 但是這些不能獲取2個節點之間的所有關系。
這是我的查詢,它的運行速度非常快:
MATCH (s:Stop)--(st:Stoptime), (e:Stop)--(et:Stoptime)
WHERE s.name IN [ 'Schlump', 'U Schlump']
AND e.name IN ['Hauptbahnhof Süd', 'HBF/Steintorwall' , 'Hamburg Hbf']
AND st.arrival_time < et.departure_time
MATCH p = allshortestpaths((st)-[r:PRECEDES*]->(et))
RETURN p
但是,當我刪除所有最短路徑並看到所有關系時,它將永遠存在。
我嘗試將查詢分為多個查詢,如下所示,但是這也花費了很多時間。
MATCH (s:Stop)--(st:Stoptime), (e:Stop)--(et:Stoptime)
MATCH p1 = (st)-[r1*..4]-(st2:Stoptime),
p2 = (st2:Stoptime)-[r2*..4]-(st3:Stoptime),
p3 = (st4:Stoptime)-[r3*..4]-(st5:Stoptime),
p4 = (st5:Stoptime)-[r4*..4]-(et:Stoptime)
WHERE s.name IN [ 'Schlump', 'U Schlump']
AND e.name IN ['Hauptbahnhof Süd', 'HBF/Steintorwall' , 'Hamburg Hbf']
AND all(x1 in nodes(p1) WHERE (x1:Stoptime))
AND all(x2 in nodes(p2) WHERE (x2:Stoptime))
AND all(x3 in nodes(p3) WHERE (x3:Stoptime))
AND all(x4 in nodes(p4) WHERE (x4:Stoptime))
RETURN r1, r2, r3, r4
我該怎么辦? 如何找到某些節點之間的所有關系?
返回兩個節點之間的所有路徑是否可行取決於圖形結構。
如果您具有圓形結構或密集圖,則兩個節點之間的路徑將非常多。 有關更多信息,請參見此問題: 查找兩個圖節點之間的所有路徑
我認為公共交通系統的圖表非常密集。 因此,由於圖論(而不是由於未優化的查詢),返回兩個工作站之間的所有路徑都不起作用。
您必須弄清楚為什么確實需要所有路徑,以及是否可以用不同的方式或有一些約束(例如最大長度)來表示該查詢。 同樣,如果您確實需要所有路徑,那么您的圖形結構可能不適合回答您的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.