首页 文章

在Titan(Cassandra)中已存在的顶点属性上创建索引?

提问于
浏览
6

我正在使用Titan Server(Cassandra)v 0.3.1 . 我想在我已经开始使用的顶点键/属性上创建索引 . 然而,在他们的documentation中,泰坦解释说:

要按键索引顶点,必须在首次在顶点属性中使用键之前创建相应的键索引 .

如果我尝试在已存在的字段上创建索引,我会看到预期的错误:

gremlin> g.createKeyIndex("my_key",Vertex.class)
Cannot add an index to an already existing property key: my_key

但是,即使我尝试通过删除所有顶点和边缘来清除图形,我也会看到同样的错误:

gremlin> g.E.remove()
==>null
gremlin> g.V.remove()
==>null
gremlin> g.createKeyIndex("my_key",Vertex.class)
Cannot add an index to an already existing property key: my_key

因此,即使删除了所有图形元素,似乎 my_key 仍然存在于基础数据存储中 . 这与文档一致(即使元素已被删除,属性已经'first used'),但似乎值得一试 .

我的下一步将是重新创建一个新的Cassandra数据存储,但我想知道是否有更好的选择 .

在已经在Titan中使用的字段上创建索引的最简单方法是什么?

2 回答

  • 3

    将Titan指向新的Cassandra数据存储,并在插入具有该属性的任何元素之前创建索引 .

    gremlin> g.createKeyIndex("my_key",Vertex.class)
    ==>null
    
  • 3

    试试这个gremlin查询:

    gremlin> g.V.each{g.removeVertex(it)}
    

    您无需手动删除边缘,因为如果删除顶点,将自动删除与其关联的所有边 . 要删除所有顶点,您需要使用迭代查询 .

    清除图表后,您将不需要新的KeySpace . 然后你可以使用:

    gremlin> g.createKeyIndex("my_key",Vertex.class)
    

相关问题