【问题标题】:Key index on Bulbs / Gremlin / Titan灯泡 / Gremlin / Titan 的关键索引
【发布时间】:2012-10-29 20:43:54
【问题描述】:

我正在尝试将我的 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

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

有什么建议吗?

谢谢!

雷纳托·佩迪戈尼

【问题讨论】:

    标签: graph gremlin titan bulbs tinkerpop


    【解决方案1】:

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

    该异常表明该属性不仅具有索引,而且是唯一的(有关详细信息,请参阅Titan Types)。

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

    【讨论】:

      猜你喜欢
      • 2015-10-06
      • 1970-01-01
      • 2015-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-02
      • 2013-06-13
      • 2014-06-27
      相关资源
      最近更新 更多