Порядок шифрования по количеству путей

Допустим, у меня есть граф фильмов и режиссеров, где фильмы связаны друг с другом совместным просмотром. Я хочу найти похожих режиссеров, т.е. режиссеров, чьи фильмы обычно смотрят вместе.

START n=node:index(Name="Steven Spielberg") MATCH n-->m--l‹--o RETURN o;

Это дает мне всех связанных директоров, но как мне упорядочить их по количеству путей, которые их соединяют? Бонусные баллы, если я также смогу принять во внимание вес ничьей между фильмами.


person Olga Mu    schedule 12.05.2013    source источник


Ответы (1)


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;
person Michael Hunger    schedule 12.05.2013