2016-05-18 9 views
2

TitanDB 1.0.0(DynamoDBのの上)TitanDB - タイムスタンプで降順でのプロパティのインデックスを作成し

私はラベルと頂点の集合を持っている3

グレムリン。私はタイプの長さがで、これらの頂点は1970年UTC(頂点が作成された時のタイムスタンプ)からのミリ秒単位の時間に対応します。これらの頂点を引き戻すと、戻ってくることができます。オーダー。

にはどうすればタイタン管理システムDECRために、そのプロパティにインデックスを作成することができますか?

ドキュメンテーションはあまりにも曖昧です。私が見つけた

最も近いものは

public RelationTypeIndex buildPropertyIndex(PropertyKey key, String name, Order sortOrder, PropertyKey... sortKeys)

あるしかし、私はキーとSORTKEYSとして何を入れますか?私は編集 timestampプロパティによって

を注文した全頂点を引っ張ることができるようにしたい:分でこれを行うの私が知っている唯一の方法は、エッジでそのプロパティを複製し、上の頂点を中心とインデックスを使用することですエッジを使用してパフォーマンスを向上させます。

答えて

9

私は特定の製品の発売日までに私が似たようなことをします。 order().by("Value", decr)を効率的に実行したい場合は、hereと指定された混合インデックスを読むことを強くお勧めします。混合インデックスを使用すると、これらの操作をすばやく実行できます。

あなたが探してすることができるものの例:

TitanGraph graph = TitanFactory.open(config); 
TitanManagement mgmt = graph.openManagement(); 
PropertyKey key = mgmt.makePropertyKey("TimeStamp").dataType(Long.class).make(); 
mgmt.buildIndex("timeStampIndex", Vertex.class).addKey(key).buildMixedIndex("search"); 
mgmt.commit(); 

上記指標は、私は非常に迅速に次のクエリを実行できます:

私の降順にタイムスタンプを取得します
g.V().order().by("TimeStamp", decr); 

。上記のトラバーサルはインデックスを作成せずに動作しますが、大きなグラフでは遅くなる可能性があります。

+0

私はそれをやって遊んでいましたが、私はインデックスが滞っていて、登録されたステータスと成功=偽に固執していません。 –

+0

既存のデータに新しいインデックスを適用するには時間がかかることがあります。私は、最初からインデックスを作成するだけで、幸運を祈ることができました。後で索引を作成するには、明示的な再索引付け手順が必要です。私の答えでリンクされたページは、再索引付けに関するより多くの情報を提供します。 –

関連する問題