2016-09-04 34 views
0

我將一個基於CSV的分類法加載到Neo4j中,其中每個節點代表Neo4j中的一個分層佈局。換句話說,根據每個節點是層次結構的子集還是超集,每個節點都有一個parent_of和child_of關係。生成Neo4j的分類或文本表示查詢結果

實施例分類:

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 

其中 「月亮」 是一個child_of 「不明確的」 和 「不明確的」 是parent_of 「月亮」 等

現在我想要搜索數據庫中的特定節點,並根據搜索結果重新創建其分類的分層結構。

首先,我跑了暗號查詢:

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「映射。我無法推斷術語之間的任何深度 - 所以我無法重新創建層次結構。

那麼,我該如何使用搜索和查詢結果來重新生成多層次的層次結構呢?

回答

2

可以返回節點之間的整個路徑:

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

是否總是在響應中的最後一行是完整路徑的情況下? (謝謝你的答案btw!) – Sean

+0

此外,我接受了答案,但仍然存在問題。結果沒有清楚說明哪些組是完整路徑 - 所以我實在無法從結果中重新創建分類。或者我可以嗎? – Sean

+1

@Sean你是什麼意思「重新創建分類」?你能舉一個你想得到的例子嗎? –