TitanDB - 按时间戳降序构建属性索引

时间:2016-05-18 12:39:19

标签: database graph titan gremlin

TitanDB 1.0.0 (在DynamoDB之上)

Gremlin 3

我有一组带有标签 a 的顶点。我在这些顶点上有一个类型为 long 的属性,它对应于1970年UTC(创建顶点的时间戳)的时间(以毫秒为单位)。当我拉回那些我希望能够拉动的顶点时他们回到 decsending 顺序。

如何在 Titan管理系统中的 decr 顺序中为该属性创建索引?

文档似乎含糊不清。

我发现的最近的事情是

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

但是我将和sortKeys放入什么?我希望能够拉出由timestamp属性

排序的整个顶点

编辑:我知道这一刻的唯一方法是在边缘复制该属性,并在边缘使用以顶点为中心的索引来提高性能。

1 个答案:

答案 0 :(得分: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);

它以降序排列给我时间戳。上面的遍历可以在没有索引的情况下工作,但在大图中可能会很慢。