2013-02-22 98 views
2

我有我的Neo4j(嵌入式)數據庫的設置是這樣的:Neo4j的子圖或多個數據庫

  • 我附上幾個用戶節點到參考節點。
  • 可以爲每個用戶節點附加一個或多個項目節點。
  • 每個項目節點都附有一個複雜的圖形。

複雜圖形可以遍歷一個遍歷模式(其中有一個隱藏的樹結構)。

我希望做的是以下幾點:

  • 刪除項目節點下的所有節點。
  • 刪除用戶下面的所有項目節點,當沒有什麼項目節點
  • 出口低於一個特定的用戶節點下的所有節點.graphML(可能使用精怪的Java API?)
  • 導入.graphML文件恢復到特定用戶節點下面的數據庫,而不會刪除位於不同用戶節點下的信息。

我已經與Gremlin GraphML閱讀器一起導入和導出整個Neo4J數據庫,但我無法找到有關導入/導出子圖的內容。

如果這實際上是可能的話,那麼Neo4J如何處理兩個用戶同時嘗試導入內容?例如,用戶1在user1節點下導入他的部分,並且用戶2同時在用戶2節點下導入他的數據。

另一種可能性是每個用戶都有一個Neo4J數據庫,但這實際上是不太可取的選擇,我很不確定它是否實際可行,無論是嵌入式還是服務器版本。我已閱讀了有關在不同端口上有多個服務器版本的情況,但我們的用戶數量根據定義無限制...

任何幫助將不勝感激。

編輯1:我也遇到過一些叫做Geoff(org.neo4j.geoff)的東西,它處理子圖。我完全無能爲力,但我現在正在研究它。

回答

3

開始導入時,您可能會鎖定用戶節點,以便第二次導入必須等待(並且必須檢查)。

通過密碼查詢,您可以刪除子圖並再次將其導出到密碼。在Neo4j Console repository中有查詢結果的導出代碼。

在那裏您還可以找到geoff-export和import以及cypher importers。