【发布时间】:2013-02-25 09:42:20
【问题描述】:
在我的数据库中,我可以使用类似于这样的原生 Neo4J 遍历来提取子图:
TraversalDescription td = Traversal.description()
.depthFirst()
.relationships(Relation.REL1, Direction.OUTGOING)
.relationships(Relation.REL2, Direction.OUTGOING);
它就像一个魅力。现在我想做两件事中的一件,但我希望后者更容易一些。
- 我想将遍历存储在 Tinkerpop 蓝图图形对象中。
- 我想在 Gremlin 中执行相同的查询(通过 java api)并将其存储在相同类型的图形对象中。
当我说将遍历存储为图形对象时,我的实际意思是我希望在遍历期间经过的每个节点(不仅是叶节点)都存储在这样的图形对象中,然后我希望创建新图形对象中同时存在 start 和 endnode 的每个关系。这包括我没有包含在遍历描述中的关系。
【问题讨论】:
-
存储是什么意思?这只是遍历而不修改任何东西?
-
我想从数据库中提取一个子图。为了找出子图中的节点,我执行了一次遍历。我已经为我的遍历制定了规则,以便每个端节点都是子图的一部分。这个子图需要存储在 Tinkerpop Blueprints 图形对象中,因此我认为在 Gremlin 中执行类似的查询会更容易。
-
我已经设法做到这一点,方法是将我在遍历中捕获的节点 ID 存储在一个列表中,然后将整个 Neo4Jgraph 复制到一个 Tinkergraph 中并删除所有不在列表中的节点.但这样做的效率很低。我不想复制整个图并删除我不需要的东西,我只想将我通过遍历找到的节点以及这些节点之间存在的每个关系插入到 Tinkergraph 中。
标签: java neo4j traversal gremlin