【发布时间】:2013-07-17 15:23:16
【问题描述】:
如何找到与包含路径相关的关系方向?我需要这个来进行考虑关系方向的加权图搜索(用0 衡量“错误”方向,另请参见 cmets)。
让我们说:
START a=node({param})
MATCH a-[*]-b
WITH a, b
MATCH p = allshortestpaths(a-[*]-b)
RETURN extract(r in rels(p): flows_with_path(r)) as in_flow
在哪里
flows_with_path = 1 如果sp = (a)-[*0..]-[r]->[*0..]-(b),否则
0
编辑:更正查询
【问题讨论】:
-
如果 sp 包含传入和传出关系会发生什么?
-
in_flow 然后会指出这一点。例如。 [1, 0, 0, 1, 1] 表示 a 和 b 之间有 5 个 rel,rel 0, 3, 4 是传出的。也可能在路径中存在传入和传出关系否则相同。我想它应该说 allshortestpaths 来澄清这一点。在这种情况下,例如在位置 2 有 2 个关系,我可能会得到 2 个向量,[1, 0, 0, 1, 1] 和 [1, 1, 0, 1, 1]