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