我找到了关于创建时间线的wiki page,但它很短且未完成。我设法创建了用于向时间轴添加事件的密码:
MERGE (y:YEAR{year: {y} })
CREATE UNIQUE y-[:HAS_MONTH]->(m:MONTH{month:{m} })
CREATE UNIQUE m-[:HAS_DAY]-> (d:DAY {day: {d} })
CREATE UNIQUE d-[:HAS_EVENT]->(e:EVENT{desc: {desc} })
WITH y AS y
MATCH n RETURN n
它似乎工作正常,但我还需要能够让任何事件得到下一个。我不确定如何在密码中建立水平(即数月,日,事件)链接。如果我设法这样做,当我在另外两个事件之间插入新事件时,我将需要销毁此链接。 如果我不建立水平链接,我认为在时间轴中获取下一个事件的代码会相当尴尬。或不?实施它的最佳方法是什么?
答案 0 :(得分:3)
请查看How to filter edges by time stamp in neo4j?
时间建模指南是使用聚合(Year)->(Month)->(Day)
的时间树层次结构,范围的时间戳,以及从任何其他节点检索相对N个节点的链接列表(获取最后5个,获取下一个5)。