Поместите запрос в foreach - PullRequest
       11

Поместите запрос в foreach

0 голосов
/ 03 апреля 2019

Я хочу использовать возвращенный кратчайший путь между каждым узлом и корнем (классификация основной темы), чтобы построить мой график.Я использую следующий запрос

 MATCH ()-[:SUBJECT]->(c:Category)
 UNWIND NODES(c) AS nd // to get all the nodes on which I want to iterate
 FOREACH(n in nd|
 WITH n as start
 path = allShortestPaths((start)-[:SUBCAT_OF*]-> (p1:Category {catName:   "Main_topic_classifications"}))
 UNWIND RELATIONSHIPS(path) AS rel
 WITH STARTNODE(rel) AS s, ENDNODE(rel) AS e
 MERGE (s)-[:NEW_SUBCAT]->(e)

 )

Для каждого узла c я пытаюсь вычислить все кратчайшие пути для достижения корня, а затем использую возвращенный результат пути для создания новых отношений (NEW_SUBCAT).Однако, когда я запускаю предыдущий запрос, я получаю следующую ошибку:

Neo.ClientError.Statement.SyntaxError: Invalid input '(': expected an identifier character, whitespace, NodeLabel, a property map or ')' (line 5, ...)

1 Ответ

0 голосов
/ 03 апреля 2019

Этот более простой запрос может делать то, что вы хотите (FOREACH совершенно не нужно):

MATCH (start:Category)
WHERE ()-[:SUBJECT]->(start)
MATCH path = allShortestPaths((start)-[:SUBCAT_OF*]-> (p1:Category {catName:   "Main_topic_classifications"}))
UNWIND RELATIONSHIPS(path) AS rel
WITH STARTNODE(rel) AS s, ENDNODE(rel) AS e
MERGE (s)-[:NEW_SUBCAT]->(e)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...