Я использую алгоритм Neo4j randomWalk на основе двух типов узлов (N1 и N2) и одного типа отношений (R1).
Алгоритм случайного блуждания возвращает список NodeId. Проблема здесь в том, что я хотел бы получить отношения R1 между узлами каждого пути.
Я пробовал следующий запрос:
MATCH (n:N1) WHERE ID(n) = 38
CALL algo.randomWalk.stream(ID(n), 4, 4)
YIELD nodeIds
UNWIND nodeIds as nodeId
OPTIONAL MATCH (l:N1)-[r:R1]-(q:N2)
WHERE (ID(l) = nodeId) AND (ID(q) in nodeIds)
RETURN l,q, nodeIds, nodeId,ID(q), ID(l)
Однако это не очень хорошее решение, поскольку оно показывает все взаимосвязи между узлом l
и узлом q
, которые присутствуют в ID узла. Следовательно, я не понимаю путь.
Вы знаете, как я мог решить эту проблему?
Спасибо за ваше время,
Syndorik