我正在使用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
仍然存在于底层数据存储中。这与文档一致(即使元素已被删除,属性已经“首次使用”),但似乎值得一试。
我的下一步将是重新创建一个新的Cassandra数据存储,但我想知道是否有更好的选择。
在已经在Titan中使用的字段上创建索引的最简单方法是什么?
答案 0 :(得分:3)
将Titan指向新的Cassandra数据存储,并在插入具有该属性的任何元素之前创建索引。
gremlin> g.createKeyIndex("my_key",Vertex.class)
==>null
答案 1 :(得分:3)
试试这个gremlin查询:
gremlin> g.V.each{g.removeVertex(it)}
您无需手动删除边缘,因为如果删除了顶点,则会自动删除与其关联的所有边。并删除所有顶点,您需要使用迭代查询。
清除图表后,您将不需要新的KeySpace。然后您可以使用:
gremlin> g.createKeyIndex("my_key",Vertex.class)