так, как я хотел бы сделать это состоит в следующем:
Вам нужен начальный узел, откуда вы будете запрашивать следующие 7 узлов. Чтобы иметь возможность найти первые 7 узлов, я бы представил начальный корневой узел. Назовем это просто: Root.
MATCH (:Root)-[r:NEXT*1..7]->(x)<-[]-(y) RETURN x, y
или еще проще:
MATCH (:Root)-[r:NEXT*..7]->(x)<-[]-(y) RETURN x, y
: Корень конечно может быть любой другой узел в вашем наборе, чтобы получить следующие семь узлов оттуда.
Это то, что вы хотите?
Возьмите еще посмотреть на следующей Neo4j шпаргалку, которая имеет некоторые большие подсказки:
http://assets.neo4j.org/download/Neo4j_CheatSheet_v3.pdf
С уважением
EDIT
Ok извините, я неправильно понял.
Может быть, это приносит вам в дальнейшем:
MATCH (n:Node) where n.refId in [1,2,3,4,5,6,7]
MATCH (n2:Node) where n2.refId in [1,2,3,4,5,6,7]
MATCH p=shortestPath((q)-[:NEXT*]-(q2))
return collect(distinct p)
или если эти числа являются узловые идентификаторы, чем как это:
MATCH (n:Node) where id(n) in [1,2,3,4,5,6,7]
MATCH (n2:Node) where id(n2) in [1,2,3,4,5,6,7]
MATCH p=shortestPath((q)-[:NEXT*]-(q2))
return collect(distinct p)
Это фактически возвращает все пути между заданными узлами в качестве коллекции. Таким образом, он не возвращает ни одного пути для всех этих узлов. Я не знаю, как это работает функция.
Однако браузер neo4j отображает только один путь между всеми желаемыми узлами из-за его автоматической функции. Поэтому я думаю, что вам нужно будет построить свою собственную логику в коде, если вы хотите связать эти пути с одним.
Может быть, это, по крайней мере, отправной точкой для задачи
как это найти путь, который соединяет все узлы, данные и только те узлы, данные? У меня иногда 70 отношений, идущих к одному узлу и из него –
Извините, моя ошибка. Посмотрите на мое редактирование. Надеюсь, это поможет... – n3bul4