我正在尝试将我的 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
附言
- 这是我删除键空间后创建的第一个顶点
- 是否可以自动创建键索引?
有小费吗?
谢谢!
雷纳托·佩迪戈尼