Jos*_*ell 23
将日期和时间索引为整数时间戳.然后,您可以轻松地在索引中搜索其他时间戳之间的日期.您还可以将时间戳的时间部分分别索引为另一个整数,以便查询给定日期之间的特定时间.
示例:存储的日期和时间为"2012-02-05 8:15 AM"因此,在索引中,存储"timestamp = 1328447700"和"time = 815"
现在,您要查询2012-02-01和2012-02-10之间从上午8:00到上午9:00发生的所有事件的索引.你可以通过查询索引"timestamp> = 1328072400和timestamp <= 1328936399,时间> = 800,时间<= 900"来做到这一点
执行此操作的确切语法取决于您如何连接到Neo4j(REST或嵌入式)以及您正在使用的编程语言.但无论如何,这个想法都是一样的.
这是 Josh Adell 答案的扩展。为了可读性,我建议有两个date
和time
整数字段,如
date:19970716 (YYYYMMDD)
time:203045000 (HHmmssuuu): last three digits for microseconds.
Run Code Online (Sandbox Code Playgroud)
该int
数据类型可以存储高达2147483647
。如果您喜欢冒险,long
数据类型最多可以存储9223372036854775807
.
http://docs.neo4j.org/chunked/stable/graphdb-neo4j-properties.html
灵感来自ISO 8601 时间戳,如1997-07-16T19:20:30.45Z
.
免责声明:我对 Neo4J 的经验很少。