2016-12-19 2 views
2

頂点の一意のIDはDSEグラフのcommunity_idです。Datastax DSE 5.0グラフの頂点IDによるクエリの簡潔な方法は?

私はこれが機能することを発見した

(IDが長い):これらの作業の

v = g.V().has("VertexLabel","community_id",id).next() 

はなし:

v = g.V("community_id",id).next() 
    v = g.V("community_id","VertexLabel:"+id).next() 
    v = g.V(id).next() 
    v = g.V().hasId(id).next() 
    v = g.V().hasId("VertexLabel:"+id).next() 
    v = g.V("VertexLabel:"+id).next() 

編集

いくつかの調査の後、私はのためにそれを発見しました頂点v、v.id()は、LinkedHashMapを返します。

Vertex v = gT.next(); 
Object id = v.id(); 
System.out.println(id); 
System.out.println(id.getClass()); 
System.out.println(g.V().hasId(id).next()); 
System.out.println(g.V(id).next()); 

上記プリント:もっと簡潔な方法があるはず

{~label=User, community_id=1488246528, member_id=512} 
class java.util.LinkedHashMap 
v[{~label=User, community_id=1488246528, member_id=512}] 
v[{~label=User, community_id=1488246528, member_id=512}] 

... 任意のヘルプは高く評価され:)

答えて

1

は、実際に私はそれを見つけた:

IDがで書くことができますこの文字列形式:"vertexLabel:community_id:member_id"

したがって、上記の例の場合id="User:1488246528:512"

v = g.V().hasId("User:1488246528:512").next() 
v = g.V("User:1488246528:512").next() 

は、それがVで使用できるように

は、今まで私は頂点の簡潔(文字列として)IDを印刷するか良い方法を知らない

()またはhasIdで特定の頂点を返します。私が現在行っていることは次のとおりです。

LinkedHashMap id = ((LinkedHashMap)v.id()); 
String idStr = v.label()+":"+id.get("community_id")+":"+id.get("member_id"); 
0

Michail、あなたはこのアイテムを簡素化するためにあなた自身のIDを与えることもできます。これにはトレードオフがありますが、利点もあります。詳細についてはこちらをご覧ください - http://docs.datastax.com/en/latest-dse/datastax_enterprise/graph/using/createCustVertexId.html?hl=custom%2Cid

+0

ええ私はそれがUUIDでない限り存在することを知っています。私は別のIDが何であるかを知っているとは思いません。 –

関連する問題