【问题标题】:TitanDB - Build a property index in descending order by timestampTitanDB - 按时间戳降序构建属性索引
【发布时间】:2016-09-14 23:00:36
【问题描述】:

TitanDB 1.0.0(基于 DynamoDB)

小精灵 3

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

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

文档似乎对此含糊不清。

我找到的最接近的东西是

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

但是我应该将什么作为 key 和 sortKeys 输入?我希望能够拉出按时间戳属性排序的整个顶点

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

【问题讨论】:

    标签: database graph titan gremlin


    【解决方案1】:

    在特定产品的发布日期之前订购时,我会做类似的事情。如果您想有效地执行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);
    

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

    【讨论】:

    • 太棒了,是的,我只是在玩这个,但我被索引卡住了,没有上线并且卡在 REGISTERED 状态和success=false
    • 将新索引应用于现有数据可能需要一些时间。从一开始就创建索引,我很幸运。稍后创建索引需要一个显式的重新索引过程。我在答案中链接的页面提供了有关重新索引的更多信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-07
    • 2012-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多