灯泡/ Gremlin / Titan的关键指标

时间:2012-11-09 14:09:14

标签: graph gremlin titan bulbs tinkerpop

我正在尝试将我的Neo4J应用程序移植到Titan,我遇到了一些与索引有关的问题。 据我所知,Titan不支持顶点或边缘索引,只支持“关键”索引,是不是正确?

我也在使用灯泡模型,例如:

class Person(Node):
    element_type = 'person'
    facebook_id = String(indexed=True)

添加Person(facebook_id ='111')以使用:

进行检索时应该可以
gremlin> g.getVertices('facebook_id', '111')

它不起作用并告诉我在使用之前需要创建密钥索引。所以我删除了键空间并在rexster doghouse中手动创建了索引:

gremlin> g.createKeyIndex("facebook_id", Vertex.class);

之后,用灯泡创建了Person(facebook_id ='111')并试图在rexster doghouse上检索:

gremlin> g.getVertices("facebook_id", "111")

得到空洞的回应。当使用Titan顶点ID获取时,它可以工作,但“facebook_id”为空,“。map()”不起作用:

gremlin> g.v(4)
==>v[4]
gremlin> g.v(4).name
==>Renato Garcia Pedigoni
gremlin> g.v(4).facebook_id # nothing returned!
gremlin> g.v(4).map()
==>javax.script.ScriptException: java.lang.IllegalArgumentException: The value is already used by another vertex and the key is unique

PS

  • 这是我在删除键空间后创建的第一个顶点
  • 是否可以自动创建密钥索引?

任何提示?

谢谢!

Renato Pedigoni

1 个答案:

答案 0 :(得分:2)

是的,Titan仅支持使用类似功能替换旧手动顶点索引的键索引,但开销较少。

该异常表示该属性不仅被索引,而且也是唯一的(有关更多信息,请参阅Titan Types)。

您是否尝试在Gremlin中添加顶点和键索引(即没有灯泡)? 此外,James在Titan集成方面做了很多关于Bulbs的工作,因此这个特定问题可能会在最新版本中得到解决。