У меня есть подграф в Neo4j с несколькими путями, сгенерированных с помощью:Кортеж ближайших соседей в подграфа в Neo4j
match p=((n:Actor)-[*1..3]->(m:film)) where n.surname='Craig' and m.name='Minions' and ALL(x in nodes(p)[1..length(p)-1] where labels(x)[0]='Director') return p
Теперь из этого подграфа Я хочу, чтобы список кортежей, где каждый кортеж представляет собой пару подключенных узлов в подграфа:
node0, node1
node1, node3
node0, node2
node2, node26
Я пробовал:
match p=((n:Actor)-[*1..3]->(m:film))
where n.surname='Craig' and m.name='Minions' and ALL(x in nodes(p)[1..length(p)-1] where labels(x)[0]='Director')
with nodes(p) as np
match p2=((nn)-[]-()) where nn IN np
return p2
, но это только что вернулся ближайшего соседа каждого узла в p. В том числе до узлов не в подграфе.
Это похоже на работу
MATCH p=((n:Actor)-[*1..3]->(m:Film))
WHERE n.surname='Craig' AND m.name='minions' AND ALL(x in nodes(p)[1..length(p)-1] WHERE labels(x)[0]='Director')
MATCH p2=(n2)-[r]-(m2)
WHERE n2 IN nodes(p) AND m2 IN nodes(p)
RETURN
n2,r,m2
Однако очень медленно, любая скорость рекомендаций?
Вы не указали 'с p' между вашими предложениями о матче? –