繁体   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