Вернуть график, основанный на количестве отношений между узлами - PullRequest
0 голосов
/ 04 июня 2018

Я экспериментирую с созданием нескольких отношений между узлами, чтобы представить важность между двумя заданными узлами.

Например, я хочу знать, что такое "жанр"Чтение материала является наиболее важным для Джо.

Neo4j Graph of What Joe likes to read

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

Итак, если я хочу совпадения с 3 или более отношениями, я должен получить график с Джо -> Фэнтези

Я знаю, что могу получить это, когда определены обе конечные точки:

MATCH (p:PERSON {name:'Joe'})-[r]->(g: GENRE {name:'Fantasy'}) 
RETURN count(r)

То, что я хочу, выглядит примерно так:

MATCH p = (p:PERSON {name:'Joe'})-[r]->()
WHERE *pair_relationship_count*(r) >= 3
RETURN p

Ответы [ 3 ]

0 голосов
/ 04 июня 2018

Во-первых, я думаю, что вы можете достичь своей цели, используя предложение WITH :

MATCH path = (:PERSON {name:'Joe'})-[r]->(:GENRE {name:'Fantasy'})
WITH path, count(r) as count
WHERE count > 3
RETURN path

Но использование одного отношения для каждого прочитанного "события" кажется плохим подходом.Возможно, вам следует использовать целочисленное свойство в отношении, а затем увеличивать это свойство для каждого «чтения».Таким образом, вы можете делать запросы, такие как:

MATCH path = (:PERSON {name:'Joe'})-[r]->(:GENRE {name:'Fantasy'})
WHERE r.count > 3
RETURN path
0 голосов
/ 04 июня 2018

Чтобы получить коллекцию всех READS путей для "Джо", которые включают каждый жанр, который он прочитал по крайней мере 3 раза:

MATCH p = (:PERSON {name:'Joe'})-[:READS]->(genre)
WITH genre, COLLECT(p) AS paths
WHERE SIZE(paths) >= 3
RETURN genre, paths;
0 голосов
/ 04 июня 2018

Это мое предложение:

MATCH path = (p:PERSON {name:'Joe'})-[r]->() 
WITH collect(path) as paths, collect(r) as pair_count
WITH paths WHERE size(pair_count) >= 3 
UNWIND paths as path
RETURN path

Но, возможно, более эффективно иметь одно отношение со свойством внутреннего счетчика на одно отношение для каждой пары узлов.

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