3

グレムリン初心者の質問です。プロパティ名を使用してグラフからノードを取得し、そのすべての添付プロパティを出力したいと考えています。

これは私がしようとしているものです:

println g.v(20020000001901003)

それは私にヌルを与えています。これを試すと:

println g.idx('mygraph')[[id:20020000001901003]]

出力は[StartPipe]です。

StartPipeノードのプロパティにアクセスするにはどうすればよいですか?

ありがとう!

4

1 に答える 1

6

トイ グラフと TinkerPop 2.x を使用した Gremlin ターミナルの例を次に示します (3.x の手順については後述します)。次のコンソール セッションは、キー インデックスを作成して検索する方法を示しています。

gremlin> g = TinkerGraphFactory.createTinkerGraph()
==>tinkergraph[vertices:6 edges:6]
gremlin> g.createKeyIndex("name",Vertex.class)
==>null
gremlin> g.V("name","marko").name
==>marko
gremlin> g.V("name","marko").map
==>{age=29, name=marko}

null を返す理由は、その関数が割り当てられた識別子ではなく、グラフ内の要素の一意の識別子に基づいて頂点を検索しようとするためであることに注意してg.v(20020000001901003)ください (ID のユーザー割り当てをサポートするグラフはほとんどありません...通常は独自に生成します)。割り当てられた識別子を使用して頂点にアクセスする場合、次のことを考慮してください。

gremlin> g.V("name","marko")
==>v[1]
gremlin> g.v(1).map
==>{age=29, name=marko}

手動インデックスを作成した場合は、参照している g.idx 構文を使用します。次に例を示します。

gremlin> idx = g.createIndex("my-index",Vertex.class)
==>index[my-index:Vertex]
gremlin> idx.put("id", 1000, g.v(1))
==>null
gremlin> g.idx("my-index")[[id:1000]]
==>v[1]

Gremlin ターミナルを使用していないため、その開始パイプを繰り返す必要があると思います。リストに送信するようなことをするかもしれません:

gremlin> x=[];g.idx("my-index")[[id:1000]].fill(x)
==>v[1]
gremlin> x.size()
==>1

TinkerPop 3.x では、インデックスに対する TinkerPop の抽象化はありません。基になるグラフ データベースで規定されているインデックス作成のメソッドを使用する必要があります。たとえば、neo4j では、いくつかの Cypher 構文を使用します。TinkerGraph にはcreateIndex()メソッドしかありません。次のように使用方法を確認できます。

gremlin> graph = TinkerGraph.open()
==>tinkergraph[vertices:0 edges:0]
gremlin> graph.createIndex('name',Vertex.class)
gremlin> g = graph.traversal()
==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
gremlin> g.addV('name','stephen')
==>v[0]
gremlin> g.addV('name','steve')
==>v[2]
gremlin> g.V().has('name','stephen')
==>v[0]

上記の最後の行でルックアップを行う場合、Gremlin の観点から「name」のインデックスを使用するために使用する明示的な構文がないことに注意してください。TinkerGraph は、has()and の使用をキーが「name」であることを自動的に検出し、インデックスを使用します。「name」のインデックスが見つからない場合は、頂点のフル スキャンを実行して「stephen」を見つけます。すべての TinkerPop 実装には、このような種類のインデックス ルックアップを行うための同様の戦略があります。

于 2012-11-20T19:37:10.863 に答える