在我的數據庫,我可以使用原生的Neo4j遍歷,看起來有點像這樣提取的子圖:小鬼穿越在Neo4j的
TraversalDescription td = Traversal.description()
.depthFirst()
.relationships(Relation.REL1, Direction.OUTGOING)
.relationships(Relation.REL2, Direction.OUTGOING);
它就像一個魅力。現在我想做兩件事中的一件,但我期望後者更容易一些。
- 我想將遍歷存儲在Tinkerpop藍圖圖形對象中。
- 我想在Gremlin中執行相同的查詢(通過java api)並將其存儲在相同類型的圖形對象中。
當我說存儲遍歷作爲一個圖形對象,我實際上的意思是,我不想被存儲在這樣一個圖,我是遍歷期間通過了(所以不僅是葉節點)的每一個節點對象,然後我想要創建新的圖形對象中存在開始和結束節點的每個關係。這包括我沒有包含在我的遍歷描述中的關係。
你是指什麼存儲?這只是遍歷而不修改任何東西? – 2013-02-25 10:15:31
我想從數據庫中提取一個子圖。爲了找出哪個節點在子圖中,我執行遍歷。我爲我的遍歷制定了規則,以便每個endnode都是子圖的一部分。這個子圖需要存儲在Tinkerpop Blueprints圖形對象中,因此我認爲在Gremlin中執行類似的查詢會更容易。 – 2013-02-25 10:32:56
我已經設法做到這一點,將我在遍歷中捕獲的節點ID存儲在列表中,然後將整個Neo4Jgraph複製到Tinkergraph中,並刪除所有不在列表中的節點。但是,這樣做效率低下。我不想複製整個圖並刪除我不需要的東西,我只想插入到Tinkergraph中我遍歷的節點以及這些節點之間存在的每個關係。 – 2013-02-25 10:37:50