簡體   English   中英

計算2個節點之間的所有關系

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM