Titan DB 错误索引
Titan DB bad index
我有这个 titan 数据库模式:
val mgmt = getManagementSystem
val guid = mgmt.makePropertyKey("guid").dataType(classOf[String]).make()
mgmt.buildIndex("byGuid",classOf[Vertex]).addKey(guid).unique().buildCompositeIndex()
mgmt.commit()
mgmt.makePropertyKey("foo").dataType(classOf[String]).make()
mgmt.makePropertyKey("fo2").dataType(classOf[String]).make()
mgmt.makePropertyKey("about").dataType(classOf[String]).make()
/**
foo foo foo
*//
mgmt.commit()
当我尝试这样做时:
db.V.has("guid", guid).next()
然后在 Debug 中是这条消息:
[warn] c.t.t.g.t.StandardTitanTx - Query requires iterating over all vertices [()]. For better performance, use indexes
我使用了 titan 文档,所有设置都与文档中的一样。我不知道出了什么问题,请帮忙。谢谢
您必须等待复合索引从 INSTALLED
状态切换到 ENABLED
状态。
为此,请将代码更改为如下所示
// Create an index
m = graph.openManagement()
m.buildIndex('names', Vertex.class).addKey(m.getPropertyKey('name')).buildCompositeIndex()
m.commit()
graph.tx().commit()
// Block until the SchemaStatus transitions from INSTALLED to REGISTERED
ManagementSystem.awaitGraphIndexStatus(graph, 'names').status(SchemaStatus.REGISTERED).call()
// Reindex using TitanManagement
m = graph.openManagement()
i = m.getGraphIndex('names')
m.updateIndex(i, SchemaAction.REINDEX)
m.commit()
// Enable the index
ManagementSystem.awaitGraphIndexStatus(graph, 'names').status(SchemaStatus.ENABLED).call()
更多信息,请查看here
我有这个 titan 数据库模式:
val mgmt = getManagementSystem
val guid = mgmt.makePropertyKey("guid").dataType(classOf[String]).make()
mgmt.buildIndex("byGuid",classOf[Vertex]).addKey(guid).unique().buildCompositeIndex()
mgmt.commit()
mgmt.makePropertyKey("foo").dataType(classOf[String]).make()
mgmt.makePropertyKey("fo2").dataType(classOf[String]).make()
mgmt.makePropertyKey("about").dataType(classOf[String]).make()
/**
foo foo foo
*//
mgmt.commit()
当我尝试这样做时:
db.V.has("guid", guid).next()
然后在 Debug 中是这条消息:
[warn] c.t.t.g.t.StandardTitanTx - Query requires iterating over all vertices [()]. For better performance, use indexes
我使用了 titan 文档,所有设置都与文档中的一样。我不知道出了什么问题,请帮忙。谢谢
您必须等待复合索引从 INSTALLED
状态切换到 ENABLED
状态。
为此,请将代码更改为如下所示
// Create an index
m = graph.openManagement()
m.buildIndex('names', Vertex.class).addKey(m.getPropertyKey('name')).buildCompositeIndex()
m.commit()
graph.tx().commit()
// Block until the SchemaStatus transitions from INSTALLED to REGISTERED
ManagementSystem.awaitGraphIndexStatus(graph, 'names').status(SchemaStatus.REGISTERED).call()
// Reindex using TitanManagement
m = graph.openManagement()
i = m.getGraphIndex('names')
m.updateIndex(i, SchemaAction.REINDEX)
m.commit()
// Enable the index
ManagementSystem.awaitGraphIndexStatus(graph, 'names').status(SchemaStatus.ENABLED).call()
更多信息,请查看here