web-dev-qa-db-ja.com

グレムリンはすべての頂点を削除します

IDで頂点を削除する方法は知っていますが、複数の頂点を削除する必要があります(dbをクリーンアップ)。

1 vの削除は次のようになります。

ver = g.v(1)
g.removeVertex(ver)
27
Aleksandrenko

あなたが試すことができます

g.V.each{g.removeVertex(it)}
g.commit()
19
Peter Neubauer

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()Traversalremove()のように自動的に反復しないため、削除を実行するにはiterate()を明示的に呼び出す必要があることに注意してください。 Gremlin Consoleでの反復については、この tutorial で詳しく説明しています。

また、異なるグラフシステムには、そのシステム内のすべてのデータをより迅速かつ効率的に削除するための独自のメソッドが潜在的にあることを考慮してください。たとえば、JanusGraphには次のアプローチがあります。

_ JanusGraphFactory.drop(graph)
_

ここで、「graph」は、クリアしたいJanusGraphインスタンスです。

38

前述のように、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()
19
david_p

次のようにして行うことができます。

graph.shutdown();
TitanCleanup.clear(graph);
6
Ducaz035

ブループリントは、これのためにclear()メソッドを使用していました...

g.clear()

しかし、最近削除されました:

https://github.com/tinkerpop/blueprints/issues/248

5
espeed

TinkerPop3の場合:

Drop()-step(filter/sideEffect)を使用して、要素とプロパティをグラフから削除します(つまり、削除)。

g.V().drop()
3
Daishi Nakajima

TinkerPop3では、Titan-1.0.0で、

g.V().drop()
g.tx().commit()   (commit the changes)

私のために働く。あなたは試してみることができます

3
public class JanusGraphCleanup {
    @Deprecated
    public static void clear(JanusGraph graph) throws BackendException {
        JanusGraphFactory.drop(graph);
    }
}

参照: https://github.com/JanusGraph/janusgraph/blob/master/janusgraph-core/src/main/Java/org/janusgraph/core/util/JanusGraphCleanup.Java

0
arcticOak2