Если я сделаю:
MATCH (x:NODE {x.name: "Node1"})-[r:REL1]-(y:NODE) return x,r,y
Как мне найти все отношения REL1
среди набора x
и y
узлов?
РЕДАКТИРОВАТЬ:
Основываясь на ответах, я думаю, что вопрос не ясен.
Пример графика:
create (:T1 {name:1}), (:T1 {name:2}), (:T1 {name:3}), (:T1 {name:4}), (:T1 {name:5}), (:T1 {name:6}), (:T1 {name:7})
match (a:T1 {name:1}), (b:T1 {name:2}) create (a)-[r:REL1]->(b)
match (a:T1 {name:1}), (b:T1 {name:3}) create (a)-[r:REL1]->(b)
match (a:T1 {name:5}), (b:T1 {name:4}) create (a)-[r:REL1]->(b)
match (a:T1 {name:5}), (b:T1 {name:3}) create (a)-[r:REL1]->(b)
match (a:T1 {name:5}), (b:T1 {name:2}) create (a)-[r:REL1]->(b)
match (a:T1 {name:5}), (b:T1 {name:1}) create (a)-[r:REL1]->(b)
match (a:T1 {name:7}), (b:T1 {name:6}) create (a)-[r:REL2]->(b)
match (a:T1 {name:7}), (b:T1 {name:5}) create (a)-[r:REL2]->(b)
match (a:T1 {name:7}), (b:T1 {name:4}) create (a)-[r:REL2]->(b)
match (a:T1 {name:7}), (b:T1 {name:3}) create (a)-[r:REL2]->(b)
Я собираюсь найти все, что имеет отношение REL1
сузел name:5
.Я также хочу найти все REL1
отношения между возвращенными узлами.
Так что я должен получить
5->4
5->3
5->2
5->1
1->2
1->3
Но не
7->5
7->4
7->3
Поскольку это REL2
отношений.
Так что я думаю, что могу сделать это так:
match (a:T1 {name: 5})-[b:REL1]->(c:T1) return a,b,c
union match (a:T1)-[b:REL1]-(c:T1) return a,b,c
Но проблема в том, что график, с которым я работаю, действительно большой, так что это кажется довольно неэффективным,Я предпочел бы иметь возможность
- Выбрать набор узлов (все, что связано с
5
) - Найти все соединения среди этих узлов