Hi Marc,
1. Creation of property keys and indices in the schema + commit
graph = (Janusgraph) GraphDBConfigurator.getGraph()
mgmt = graph.openManagement()
For Vertex ->
propertyKey = mgmt.makePropertyKey(propertyKeyName).dataType (String.class).cardinality(Cardinality.SET).make()
if(existingIndex)
janusgraphIndex = mgmt.getGraphIndex(VERTEX_INDEX_NAME)
mgmt.addIndex(janusgraphIndex, propertyKey)
else
indexBuilder = mgmt.buildIndex(VERTEX_INDEX_NAME, Vertex.class)
if(cardinality is SET)
indexBuilder.addKey(propertyKey, String.class.equals(propertyKey.dataType) ? Mapping.TEXT.asParameter() : Mapping.DEFAULT.asParameter())
else
indexBuilder.addKey(propertyKey, String.class.equals(propertyKey.dataType) ? Mapping.TEXTSTRING.asParameter() : Mapping.DEFAULT.asParameter())
For Edge ->
propertyKey = mgmt.makePropertyKey(propertyKeyName).dataType (String.class).cardinality(Cardinality.SINGLE).make()
propertyKey = mgmt.makePropertyKey(propertyKeyName).dataType (String.class).cardinality(Cardinality.SINGLE).make()
if(existingIndex)
janusgraphIndex = mgmt.getGraphIndex(EDGE_INDEX_NAME)
mgmt.addIndex(janusgraphIndex, propertyKey)
else
indexBuilder = mgmt.buildIndex(EDGE_INDEX_NAME, Vertex.class)
if(cardinality is SET)
indexBuilder.addKey(propertyKey, String.class.equals(propertyKey.dataType) ? Mapping.TEXT.asParameter() : Mapping.DEFAULT.asParameter())
else
indexBuilder.addKey(propertyKey, String.class.equals(propertyKey.dataType) ? Mapping.TEXTSTRING.asParameter() : Mapping.DEFAULT.asParameter())
mgmt.commit();
3. Query of a vertex based on a property value in another transaction
Let say i created a property key "domain_vertex_key1_s" for vertex
Query = g.V().has("domain_vertex_key1_s", "val1);
Let say I created a property key "domain_edge_key1_s" for edge
Query = g.V().has("domain_vertex_key1_s","val2");