我将基于CSV的分类法加载到Neo4j中,其中每个节点代表Neo4j中的分层放置。换句话说,每个节点都具有parent_of和child_of关系,具体取决于它是层次结构的子集还是超集。
示例分类:
Ambiguous, Moon
Aerospace and electronic systems
Aerospace and electronic systems, Moon
Aerospace and electronic systems, Aerospace engineering, Satellites, Moon, Man on the Moon
示例节点:
Moon
Ambiguous
月亮"月亮"是一个孩子"暧昧"和#34;暧昧"是一个父母"月亮"等
现在我想在数据库中搜索一个特定的节点,并根据搜索结果重新创建它的taxanomical heirarchy。
首先我运行了cypher查询:
MATCH (n)-[:PARENT_TO*]->(m) where m.term = "Man on the Moon" RETURN n,m;
并得到以下内容:
我的问题/问题是:
表格版本仅显示" n"和" m"映射。我无法推断出术语之间的任何深度 - 因此我无法重新创建层次结构。
那么,我如何使用搜索和查询结果重新生成多级层次结构?
答案 0 :(得分:2)
您可以返回节点之间的整个路径:
MATCH path = (n)-[:PARENT_TO*]->(m) where m.term = "Man on the Moon"
RETURN nodes( path )