生成Neo4j查询结果的分类或文本表示

时间:2016-09-04 16:34:28

标签: neo4j cypher graph-databases

我将基于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;

并得到以下内容:

enter image description here

enter image description here

我的问题/问题是:

表格版本仅显示" n"和" m"映射。我无法推断出术语之间的任何深度 - 因此我无法重新创建层次结构。

那么,我如何使用搜索和查询结果重新生成多级层次结构?

1 个答案:

答案 0 :(得分:2)

您可以返回节点之间的整个路径:

MATCH path = (n)-[:PARENT_TO*]->(m) where m.term = "Man on the Moon" 
RETURN nodes( path )