IDで頂点を削除する方法は知っていますが、複数の頂点を削除する必要があります(dbをクリーンアップ)。
1 vの削除は次のようになります。
ver = g.v(1)
g.removeVertex(ver)
あなたが試すことができます
g.V.each{g.removeVertex(it)}
g.commit()
Gremlin 2.3.0以降の最近の用語では、すべての頂点の削除は次の方法で行うのが最適です。
_g.V.remove()
_
UPDATE:バージョンGremlin 3.xの場合、 drop() を使用します。
_gremlin> graph = TinkerFactory.createModern()
==>tinkergraph[vertices:6 edges:6]
gremlin> g = graph.traversal()
==>graphtraversalsource[tinkergraph[vertices:6 edges:6], standard]
gremlin> g.V().drop().iterate()
gremlin> graph
==>tinkergraph[vertices:0 edges:0]
_
drop()
はTraversal
をremove()
のように自動的に反復しないため、削除を実行するにはiterate()
を明示的に呼び出す必要があることに注意してください。 Gremlin Consoleでの反復については、この tutorial で詳しく説明しています。
また、異なるグラフシステムには、そのシステム内のすべてのデータをより迅速かつ効率的に削除するための独自のメソッドが潜在的にあることを考慮してください。たとえば、JanusGraphには次のアプローチがあります。
_ JanusGraphFactory.drop(graph)
_
ここで、「graph」は、クリアしたいJanusGraph
インスタンスです。
前述のように、Tinkerpop3(Titan 1.0.0)を使用している場合、コマンドは次のとおりです。
g.V().drop()
これは、GremlinインタラクティブREPLインターフェースを使用している場合にのみ機能します。なぜですか?drop
は、適用するためにトラバースする必要があるイテレータを返しますand Gremlin REPLインターフェイスは、返されたイテレータを自動的に反復します。
(私のように)Gremlinに対してHTTPまたはWebSocketインターフェースを使用している場合は、返されたイテレーターを明示的に反復する必要があります。
g.V().drop().iterate()
...トランザクションをコミットします。 Titanでは、トランザクションは暗黙的に開かれますが、明示的に閉じる必要があります:
g.tx().commit()
次のようにして行うことができます。
graph.shutdown();
TitanCleanup.clear(graph);
ブループリントは、これのためにclear()メソッドを使用していました...
g.clear()
しかし、最近削除されました:
TinkerPop3の場合:
Drop()-step(filter/sideEffect)を使用して、要素とプロパティをグラフから削除します(つまり、削除)。
g.V().drop()
TinkerPop3では、Titan-1.0.0で、
g.V().drop()
g.tx().commit() (commit the changes)
私のために働く。あなたは試してみることができます
public class JanusGraphCleanup {
@Deprecated
public static void clear(JanusGraph graph) throws BackendException {
JanusGraphFactory.drop(graph);
}
}