首页 文章

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

提问于
浏览
2

TitanDB 1.0.0 (在DynamoDB之上)

Gremlin 3

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

如何在 Titan Management System 中的 decr 顺序中为该属性创建索引?

文档似乎含糊不清 .

我找到的最近的事情是

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

但是我将 key 和sortKeys放入什么?我希望能够拉出timestamp属性排序的整个顶点

Edit :我知道这一刻的唯一方法是在边缘复制该属性并使用边缘上的顶点中心索引来提高性能 .

1 回答

  • 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);
    

    这让我按降序排列时间戳 . 上面的遍历将在没有索引的情况下工作,但在大图中可能会很慢 .

相关问题