Neo4j, Cypher возвращают результаты, так как существовало несуществующее отношение между узлами - PullRequest
0 голосов

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

MATCH (p1:Person)-[:IS_FRIEND_OF]->(any:Person)
MATCH (p2:Person)-[:IS_FRIEND_OF]->(any)
WHERE NOT p1 = p2
RETURN p1, p2

Моя проблема в том, что я хочу представить их в виде графа, а отношение, связывающее person1 и person2, переименовать в " MAY_KNOWS "

1 Ответ

0 голосов
/ 13 мая 2018

Вы можете использовать virtual relationships в APOC:

MATCH (n:Person)-[r:IS_FRIEND_OF]->(other)  
MATCH (other)-[:IS_FRIEND_OF]->(candidate)
WHERE NOT (n)-[:IS_FRIEND_OF]->(candidate)   
RETURN n, other, candidate, apoc.create.vRelationship(n, 'MAY_KNOW', {}, candidate)

Ссылка: https://neo4j -contrib.github.io / neo4j-apoc-процедуры / # _ virtual_nodes_rels

enter image description here

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