Я хочу получить запрос, который начинается с 2 заданных узлов и для каждого из них берет до 5 связанных узлов (по соотношению R1), а затем ищет кратчайшую часть между этими 10 узлами (5 от 1-го и 5-го от 2-го исходные узлы).Как я могу разбить свой запрос Cypher на 2 подзапроса?
Я не могу «разбить» мой запрос на 2 части, каждый из которых вычисляет 5 узлов, а затем MATCH путь на обоих из них.
Мой запрос до сих пор:
MATCH (n1:MyNode {node_id:12345})-[:R1]-(r1:RelatedNode)
WITH r1 LIMIT 5
MATCH (n2:MyNode {node_id:98765})-[:R1]-(r2:RelatedNode)
WITH r1,r2 LIMIT 5
MATCH p=shortestPath((r1)-[*1..10]-(r2))
RETURN p
Проблема заключается в том, что второй подзапрос действительно не отделен от первого, и до сих пор несет на r1
, что делает LIMIT
неправильно.
Я хочу запустить первую часть, а затем запустить вторую часть (с только r2
), и только потом после того, как r1
и r2
вычисленными по отдельности, соответствую самому короткому пути. Это можно сделать?
Спасибо!
Можете ли вы, пелас, написать два запроса, которые вы хотите в псевдокоде? просто чтобы узнать, чего вы ожидаете в результате каждого из ваших запросов. – Supamiu