【发布时间】:2017-05-30 22:22:32
【问题描述】:
我有一个由关系相互连接的 100000 个节点的图。 从 A 点到 B 点,只有一个可能的路径,在我的模型中不可能有环路。
我正在寻找一种解决方案,该解决方案将指示节点列表的路径是否与第二个节点列表的路径相交
如果有交叉点,我不需要知道交叉点。
是否有可能在不遍历整个图的情况下找到解决方案(一旦找到第一个节点就停止)?
节点1列表:红色节点
节点列表 2:蓝色节点
由于至少有一个交叉点(黑色节点),所以请求必须返回true。
密码请求:
编辑:密码请求
match path=shortestPath((n1)-[r*]-(n2))
where id(n1) = node1 and id(n2) in nodesList1
with nodes(path) as nodespath1
match path=shortestPath((n1)-[r*]-(n2))
where id(n1) = node2 and id(n2) in nodesList2
with nodespath1, nodes(path) as nodespath2
with ANY (n IN nodespath1 WHERE n IN nodespath2) AS conflit
with ANY (n IN collect(conflit) WHERE n = true) AS conflit
RETURN conflit;
【问题讨论】:
-
“节点列表的路径”是什么意思?您的意思是“从列表中获取的所有可能的节点对之间的所有路径”,还是“从列表中获取的所有可能的节点对之间的任何路径”,或者“包含列表中每个节点的所有路径”,或者什么还有吗?
-
节点列表的路径是指列表中所有节点对之间的最短路径(只有一个可能的路径)