//建立索引
mgmt = graph.openManagement()
name = mgmt.getPropertyKey("name")
//Composite Index
mgmt.buildIndex(index_name,Vertex.Class).addKey(name).buildCompositeIndex();
//Mixed Index,需要指定索引后端(与composite index的差别)
mgmt.buildIndex(index_name,Vertex.Class).addKey(name).buildMixedIndex(index_backend_name)
mgmt.commit
索引状态:
SchemaAction.REGISTER_INDEX
SchemaAction.REINDEX
SchemaAction.ENABLE_INDEX
SchemaAction.DISABLE_INDEX
SchemaAction.REMOVE_INDEX
//Reindex
mgmt = graph.openManagement()
mgmt.updateIndex(mgmt.getGraphIndex(index_name),SchemaAction.REINDEX).get()
mgmt.commit()
//模式(schema)构建
mgmt=graph.openManagement()
//创建顶点label
mgmt.makeVertexLabel(vertex_label_name)[.partition()].make()
//创建边label,边关系类型:Mutlplicity.MULT,Mutlplicity.SIMPLE,Mutlplicity.MANY2ONE
mgmt.makeEdgeLabel(edge_label_name).mutiplicity(Mutlplicity.MULT).make
//添加属性property
mgmt.commit
//检查所有索引状态
mgmt=graph.openManagement()
mgmt.getGraphIndex("typev").getIndexStatus(mgmt.getPropertyKey("索引属性"))
mgmt.getGraphIndex("typee").getIndexStatus(mgmt.getPropertyKey("索引属性"))
mgmt.commit()
//更新索引状态
mgmt=graph.openManagement()
mgmt.updateIndex(mgmt.getGraphIndex("typev"),SchemaAction.REGISTER_INDEX).get()
mgmt.updateIndex(mgmt.getGraphIndex("typee"),SchemaAction.REGISTER_INDEX).get()
mgmt.commit()
//添加label
graph.openManagement()
mgmt.makeVertexLabel("IM").make()
mgmt.commit()
重建索引:
mgmt=graph.openManagement()
mr = new MapReduceIndexManagement(graph)
--REINDEX ON MR
mr.updateIndex(mgmt.getGraphIndex("typev"),SchemaAction.REINDEX).get()
mr.updateIndex(mgmt.getGraphIndex("typee"),SchemaAction.REINDEX).get()
--REINDEX
mgmt.updateIndex(mgmt.getGraphIndex("typev"),SchemaAction.REINDEX).get()
mgmt.updateIndex(mgmt.getGraphIndex("typee"),SchemaAction.REINDEX).get()
mgmt.commit()
删除索引
//disable
mgmt=graph.openManagement()
mgmt.updateIndex(mgmt.getGraphIndex("typev"),SchemaAction.DISABLE_INDEX).get()
mgmt.updateIndex(mgmt.getGraphIndex("typee"),SchemaAction.DISABLE_INDEX).get()
mgmt.commit()
ManagementSystem.awaitGraphIndexStatus(graph, 'name').status(SchemaStatus.DISABLED).call()
//remove
mgmt=graph.openManagement()
mgmt.updateIndex(mgmt.getGraphIndex("typev"),SchemaAction.REMOVE_INDEX).get()
mgmt.updateIndex(mgmt.getGraphIndex("typee"),SchemaAction.REMOVE_INDEX).get()
mgmt.commit()
其他
//停止已经打开的会话(否则无法操作Index)
graph.getOpenTransactions().iterator().next().rollback()
//停止所有图实例 mgmt.forceCloseInstance( mgmt.getOpenInstances().toSet()[1])
//等待生效 mgmt.awaitGraphIndexStatus(graph,index_name).call()
v2=graph.indexQuery("typev", "索引KEY:value ").vertexStream().findFirst()
v2.get().getElement().properties()