2013-05-31 99 views
0

我正在使用Neo4j來存儲數據。Neo4j:創建類型1和類型2的各種節點將這兩種類型的節點與兩種不同的關係相關聯

我有2種類型的GDP和健康數據。每個數據都有一組國家(比如說20左右)和一組年份(比如1990-2013)。現在我想將每個國家/地區都存儲爲唯一標識爲國家/地區名稱的節點,並將每年作爲標籤爲唯一節點的年份。國家和年份通過上述GDP和健康關係相互關聯(映射)。

我已經收集了2個不同的SortedSet(java代碼)中的國家名稱和年份。

我不確定是否最好將每個國家和每個年份逐一添加爲graphDB.createNode(),因爲我認爲創建並定義關係太麻煩了,最好一次性批量插入所有這些國家,同時批量插入一年。但是,當我批量插入所有國家和年份時,我將如何定義它們之間的2個關係。

我想如果有人有一段java代碼或提供有關尋找數據存儲最佳解決方案的建議。

我必須指出,並非所有國家都有每年給定關係的數據。

謝謝, 淺褐色

回答

0

我已經面臨這樣的情況下在一定extent..I有不同類型的

X,Y,Z

的一些節點和有x與它對應的y或z之間的關係。我只是使用BatchInserter插入所有類型的所有節點,然後通過查找必須連接的節點的ID來進行一些sql查詢以獲取節點之間的關係。

所以,我認爲你可以插入所有的節點爲國家和國家,通過循環你有兩套,然後你可能需要一個查詢或任何其他獲得這些節點之間的關係。

0

有關將數據導入Neo4j和here以獲取其他工具(您可以'批量插入'節點和關係,不確定您的猶豫是什麼)的指南,請參見here

我不知道你的意思是'累贅'。如果你使用上面的批處理工具,你可以先完成所有的節點,然後再完成所有的關係,但是如果你使用Java嵌入式API,則不需要這樣做。如果你擔心重複,f.i.當您迭代您的SortedSet,然後再次作爲關係的「對象」或結束節點時,您首先作爲「主題」出現在節點上,您可以查看UniqueFactory。它將允許您按照便捷的順序構建您的圖形,而無需擔心創建重複節點 - 只需創建每個節點,其關係的遠程節點以及這些節點之間的關係即可。如果節點已經存在,它們將被更新,而不是重複。這可能是最直接的方式,如果遇到問題,可以嘗試再試一次,更具體一點。