Cypher按路径顺序排序

时间:2013-05-12 05:02:16

标签: graph neo4j cypher

假设我有电影和导演的图表,其中电影通过共同观看者相互连接。我想找到类似的导演,即导演的电影往往一起观看。

START n = node:index(Name =“Steven Spielberg”)MATCH n - > m - l< - o RETURN o;

这让我了解了所有相关的导演,但是如何通过连接它们的路径数来订购?如果我也可以考虑到电影之间的关系,那么奖励积分。

2 个答案:

答案 0 :(得分:4)

count(*)是以n开头并以o

结尾的路径数
START n=node:index(Name="Steven Spielberg") 
MATCH n-->m--l<--o 
RETURN o,count(*)
order by count(*) desc;

关系上的权重

START n=node:index(Name="Steven Spielberg") 
MATCH path=n-->m--l<--o 
RETURN o,sum(reduce(sum=0,r in rels(path) : sum+r.weight)) as weight
ORDER BY weight desc;

答案 1 :(得分:0)

START n=node:index(Name="Steven Spielberg") 
MATCH path=n-->m--l<--o 
RETURN o
ORDER BY length(path);