【发布时间】:2016-08-25 10:07:08
【问题描述】:
我想沿着给定的边关系删除一组顶点及其所有后代。在我的例子中,该图有一些类型为 session 的顶点,以及其他类型为 event 的顶点。有从事件到带有标签in_session 的会话的弧。
似乎没有快速的方法可以一次性完成。这是我使用的代码:
// First, select all event descendants of sessions with r < 700
GraphTraversal<Vertex, Vertex> t = g.V()
.has("type", "session")
.has("r", P.lt(700))
.in("in_session");
// And remove those events
while (t.hasNext())
t.next().remove();
// Then, using the first part of the query again,
// select the same sessions as before
t = g.V().has("type", "session").has("r", P.lt(700));
// And delete them as well
while (t.hasNext())
t.next().remove();
这对我来说似乎很笨重。此外,如果我想删除较低级别的后代,我必须编写更多重复的步骤(一直到底部,然后删除,然后备份一个级别,然后删除,然后再次备份一个级别,依此类推。 ..)。我还注意到 TitanGraph 中没有 removeVertex 方法。
【问题讨论】:
标签: java graph-databases titan