2

Neo4JアプリケーションをTitanに移植しようとしていますが、インデックスに関連する問題がいくつかあります。Titanは頂点インデックスまたはエッジインデックスをサポートしておらず、「キー」インデックスのみをサポートしていることを理解しています。

たとえば、Bulbsモデルも使用しています。

class Person(Node):
    element_type = 'person'
    facebook_id = String(indexed=True)

Person(facebook_id = '111')を追加すると、次を使用して取得できるはずです。

gremlin> g.getVertices('facebook_id', '111')

それは機能せず、使用する前にキーインデックスを作成する必要があることを教えてくれます。そこで、キースペースを削除して、rexsterdoghouseに手動でインデックスを作成しました。

gremlin> g.createKeyIndex("facebook_id", Vertex.class);

その後、BulbsでPerson(facebook_id = '111')を作成し、rexsterdoghouseで取得しようとしました。

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

  • これは、キースペースを削除した後に作成した最初の頂点です。
  • キーインデックスを自動的に作成することは可能ですか?

任意のヒント?

ありがとう!

レナート・ペディゴーニ

4

1 に答える 1

2

はい、Titanは、古い手動頂点インデックスを同様の機能に置き換えますが、オーバーヘッドが少ないキーインデックスのみをサポートします。

例外は、プロパティがインデックス付けされているだけでなく、一意であることを示しています(詳細については、Titanタイプを参照してください)。

グレムリンに頂点とキーインデックスを追加してみましたか(つまり、電球なし)?また、JamesはTitan統合に関してBulbsで多くの作業を行っているため、この特定の問題は最新バージョンで解決される可能性があります。

于 2012-11-19T22:52:10.720 に答える