如何在Neo4j中获取从根到叶的所有路径DFS方式并返回包含节点和关系的结果

问题描述

我有一个图,在其中我使用了以下密码来显示Graph中的所有路径。这将返回所有节点。 CQL:MATCH p =(root {id:'start'})-[*]->(leaf)RETURN EXTRACT(x IN NODES(p)| x.name)AS result;

我想返回节点和边,以便外行可以理解图中从根到叶的所有路径。

解决方法

可以按如下方式获取所有可用路径的列表。

MATCH p=(root {id: 'start'})-[*]->(leaf)  
// limit the match to the ones that end at a leaf
WHERE NOT (leaf)-->()


RETURN DISTINCT REDUCE (s='',r in RELATIONSHIPS(p) | 
               s+
               CASE WHEN s='' THEN '('+startNode(r).name + ')-[:'+ type(r)+']->('+ endNode(r).name+')'
                    ELSE '-[:'+ type(r)+']->('+ endNode(r).name+')'
               END
       ) AS path