在我的数据库,我可以使用原生的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