Neo4j 在森林中查找子树
我是neo4j的新手,正在尝试为一个项目建立概念证明。我的基本问题是,给定一个图,如果我选择一个根节点,如何在图中找到它下面的所有子节点。我不想返回任何父节点 我一直在研究apoc的一些功能,但没有成功 e、 g 或Neo4j 在森林中查找子树,neo4j,Neo4j,我是neo4j的新手,正在尝试为一个项目建立概念证明。我的基本问题是,给定一个图,如果我选择一个根节点,如何在图中找到它下面的所有子节点。我不想返回任何父节点 我一直在研究apoc的一些功能,但没有成功 e、 g 或 如果我想将根节点设置为节点5,我将尝试返回5,51,52,53,54,55,然后所有子节点也返回,例如511到555,您应该在查询中始终使用标签(因为它允许您使用索引进行查找,如果您已经在给定的标签+属性/属性上创建了索引) 否则,查询看起来几乎正确,但关系筛选器中存在一个小问题:
如果我想将根节点设置为节点5,我将尝试返回5,51,52,53,54,55,然后所有子节点也返回,例如511到555,您应该在查询中始终使用标签(因为它允许您使用索引进行查找,如果您已经在给定的标签+属性/属性上创建了索引) 否则,查询看起来几乎正确,但关系筛选器中存在一个小问题:
relationshipFilter:'[首先,您应该在查询中始终使用标签(因为它允许您在给定的标签+属性/属性上创建索引时使用索引进行查找)
否则,查询看起来几乎正确,但关系筛选器中存在一个小问题:
relationshipFilter:'[
MATCH (x{id:1})
CALL apoc.path.subgraphAll(x,{relationshipFilter:'PARENT[>]'}) YIELD nodes,
relationships
RETURN nodes, relationships
MATCH (x{id:1})
CALL apoc.path.subgraphNodes(x,{relationshipFilter:'[<]PARENT'}) YIELD node
RETURN node
CREATE (r:root)
FOREACH (i IN range(1,5)|
CREATE (r)-[:PARENT]->(c:child { id:i }));
MATCH (c:child)
FOREACH (j IN range(1,5)|
CREATE (c)-[:PARENT]->(:child { id:c.id*10+j }));
MATCH (c:child)
FOREACH (j IN range(1,5)|
CREATE (c)-[:PARENT]->(:child { id:c.id*10+j }));
MATCH (x:child {id:1})
CALL apoc.path.subgraphNodes(x,{relationshipFilter:'<PARENT'}) YIELD node
RETURN node