无论如何要在 Titan/gremlin 中查询日期?
例如查找过去 X 天内的所有结果

任何帮助将非常感激。

最佳答案

最好的方法是简单地将日期存储为 Long 值,并可能对边缘中的此类字段进行索引,以便您可以利用 limit()interval 等。请参阅有关该主题的 Titan wiki 页面:

https://github.com/thinkaurelius/titan/wiki/Vertex-Centric-Indices

它通过 Twitter 示例映射到您的特定请求,其中它在 time 上建立索引。您可以通过简单地计算“X 天”的毫秒数,然后找到之后的所有结果,找到基于 time 的结果:

g.v(1).outE.has('time',T.gte, fiveDaysAgoInMs).inV

请注意,从 Titan 0.4.1 开始,您还可以定义索引的方向性,以便首先返回最新的项目(不再需要反向索引属性):

https://github.com/thinkaurelius/titan/wiki/Type-Definition-Overview#sortkeytitantype-and-signaturetitantype

此外,如果您不介意一些非规范化,除了 Long 值之外,您还可以将日期存储为可排序的 String 值(例如 iso-8601)。这有助于您轻松查看日期,而无需额外转换。

关于Gremlin 日期过滤器方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20567483/

10-15 21:37