2016-12-19 5 views
2

Кажется, что уникальный идентификатор для вершин является community_id в DSE Graph.Как выполнить запрос по идентификатору вершины в Datastax DSE 5.0 График в краткой форме?

Я обнаружил, что это работает (идентификатор длиной):

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() 

Edit

После некоторого исследования я обнаружил, что для vertex 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

На самом деле я нашел его:

Идентификаторы можно записать в эта форма Строка: "vertexLabel:community_id:member_id"

Таким образом, для примера выше id="User:1488246528:512":

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

возвращает конкретный Vertex

До сих пор я не знаю, хороший способ, как печатать сжато идентификатор (в виде строки) вершины, поэтому он может быть использован в V() или в хасид() .. что я сейчас делаю:

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

Михаил, вы также можете предоставить свои идентификаторы, чтобы упростить этот пункт. При этом есть компромиссы, но есть и преимущества. Пожалуйста, см. Здесь для получения более подробной информации. http://docs.datastax.com/en/latest-dse/datastax_enterprise/graph/using/createCustVertexId.html?hl=custom%2Cid

+0

Да, я знаю, что существует, хотя, если это не UUID, я не думаю, что у меня есть хорошая идея, что может быть другим. –