Cypher设置条件只有一个关系可以显示路径中的每个节点

时间:2017-05-08 04:04:46

标签: neo4j cypher

我得到了一个圆形关系图。因此,我的图表中的每个节点之间可能有两个不同的方向关系(传出和传入)。我试图在不使用shortestpath()的情况下找到两个节点之间的路径。如何在条件中的每个节点之间显示只设置1个关系的条件?这是我的疑问:

Match p = (A)-[r*]-(b) return p

我应该写什么部分?

1 个答案:

答案 0 :(得分:0)

所以你真正想要的是最短的加权路径。 Cypher还没有直接支持这个,但您可以像这样查询

MATCH (start:Point {id: '1'}), (end:Point {id: '2'})
MATCH p=(start)-[:GO_TO*1..25]->(end)
WITH p,reduce(s = 0, r IN rels(p) | s + r.myValueProp) AS dist
RETURN p, dist ORDER BY dist DESC LIMIT 1