Я новичок в neo4j, так что, возможно, это очень простой вопрос ...
Давайте рассмотрим пример с X = 2, Y = 2
DB:
CREATE (a:Node{name:'A'})
CREATE (b:Node{name:'B'})
CREATE (c:Node{name:'C'})
CREATE (c1:Category{name:'c1'})
CREATE (c2:Category{name:'c2'})
CREATE (a)-[:REL]->(c1)<-[:REL]-(b)
CREATE (a)-[:REL]->(c2)<-[:REL]-(b)
CREATE (c)-[:REL]->(c2)
Если начальной точкой является A, запрос должен возвращать следующее, поскольку только B подключен по 2 путям с максимальным количеством прыжков = 2.
Без ограничения пути 2 я мог бы использовать следующее, но это также показало бы узел C:
MATCH (start:Node {name:"A"})-[*1..2]-(res)
RETURN start, res