私はTitan Server(Cassandra)v 0.3.1を使用しています。私は既に使用し始めている頂点キー/プロパティのインデックスを作成したいと思います。私はすでに存在しているフィールドにインデックスを作成しようとすると、予想通り、私はエラーが表示さTitan(Cassandra)に既に存在する頂点プロパティにインデックスを作成しますか?
To index vertices by key, the respective key index must be created before the key is first used in a vertex property.
:
gremlin> g.createKeyIndex("my_key",Vertex.class)
Cannot add an index to an already existing property key: my_key
しかし、I場合は、そのdocumentationで、タイタンは、と説明しますすべての頂点&辺を除去することにより、グラフをクリアしようと、私は同じエラーを参照してください。
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で既に使用されているフィールドにインデックスを作成する最も簡単な方法は何ですか?
ご回答いただきありがとうございます。残念ながら、これはこの目的のために行われていないようです。私は 'g.V.each {g.removeVertex(it)}'は 'g.V.remove()'([関連参照](http://stackoverflow.com/a/17250723/2172530))とほぼ同じだと思います。別の方法で頂点を削除しようとしたとき、Titanは「既存のプロパティキーにインデックスを追加できません:my_key」という同じ苦情を受けました。 – bcm360
削除後にトランザクションをコミットしましたか? – Pradatta
私は違いはありません: 'gremlin> g.V.each {g.removeVertex(it)}; g.commit(); g.createKeyIndex( "my_key"、Vertex.class); 既存のプロパティキーにインデックスを追加できません:my_key' – bcm360