Gremlin drop() 无法通过 java api 工作

Gremlin drop() isn't working via java api

我正在使用由本地 dynamodb 实例(使用 3.0 tinkerpop 堆栈)支持的 titan db 1.0.0。我花了比我愿意承认的更多的时间试图弄清楚为什么 drop() 不起作用。在我的用例中,我试图删除通过遍历找到的特定边缘,但即使 graph.traversal().V().drop() 也不起作用。我做了很多谷歌搜索,但可能没有使用正确的关键字。我终于想出了我将在回答中指定的问题。希望其他人觉得这很有用。

我终于想起在某个地方读过(不幸的是我现在找不到它来分享 link edit:参见 Stephen Mallete 提供的 link ),当处理 java-land 中的 gremlin 时,您需要明确地迭代遍历。

所以诀窍是 graph.traversal().V().drop().iterate()。请注意,在使用 gremlin 控制台时不需要这样做(至少在 3.0 中是这样)。您可以只使用 graph.traversal().V().drop().

您可以尝试以下方法来清除图表:

TitanGraph titanGraph = TitanFactory.open(config);
TitanCleanup.clear(graph);

这实质上删除了 Cassandra 中的键空间并完全清除了图表,包括索引。

遍历后需要提交

示例:

graph.traversal().V().drop().iterate()
graph.tx().commit()