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属性
排序的整个顶点编辑:我知道这一刻的唯一方法是在边缘复制该属性,并在边缘使用以顶点为中心的索引来提高性能。
答案 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);
它以降序排列给我时间戳。上面的遍历可以在没有索引的情况下工作,但在大图中可能会很慢。