问题是我必须找到所有最小权重和最大深度可能为 6 的路径(中间可能有 5 个顶点)。两个顶点之间可以有更多不同权重的关系。
例如路径:
weight(ABEF) = 2+3+1 = 6
或者2+2+1 = 5
如果我们在节点 B 和 E 之间选择不同的关系权重。
其他道路也是如此 - 由于不同的关系,相同节点之间的权重可能不同。
数据库很大,计算深度 6 的所有可能性需要很长时间:/
如何检查两个节点之间的所有关系权重,并且在同一搜索中不检查权重最大的关系,如果存在具有相同最小权重的关系,那么将它们都取走?
到目前为止,我有:
START n=node(158371), m=node(183090)
MATCH p=n-[r*..4]-m
WITH p, length(p) as len,r
RETURN reduce(res=0, x in r: res + x.weight) as totalscore, len
ORDER BY totalscore desc;
但是如果我深入搜索 6 并找到所有可能性,数据库就会中断。reduce 函数就像收集字符串一样,但我需要计算重量。( 2+3+1=6 not 2+3+1=231
)
Ps 如果图形图像不可见,它在这里: http: //postimg.org/image/bf9rfdtf7/