从给定节点中,我需要返回所有可变长度路径,而无需重复关系类型或节点标签。
例如:
(:A)-[:r1]-(:B)
(:A)-[:r1]-(:C)-[:r2]-(:D)-[:r3]-(:E)
答案 0 :(得分:1)
我认为您无法在遍历过程中使用Cypher对此进行评估,而且在我看来,在获取所有路径后过滤都是无效的(尽管可能是树结构)。
您最好的选择是使用traversal API来实现自己的自定义过程。
答案 1 :(得分:0)
这是Neo4J的一些可爱的人为我解决的。它需要APOC。
MATCH p=(:StartingPoint)-[*1..3]->() WHERE size(apoc.coll.duplicates([x in relationships(p) | type(x)]))=0 AND size(apoc.coll.duplicates(apoc.coll.flatten([x in nodes(p) | labels(x)])))=0 RETURN p