2013-03-12 64 views
11

我有只在特定时间有效的节点之间的关系。简单的例子:从时间t1到时间t2,人P住在地址A处。我可以在关系上放置一个validFrom和一个validUntil属性,但是在使用cypher时,我必须在WHERE子句中对此进行归档,但我希望它在MATCH子句中。Neo4J与时间约束的关系

我在MATCH子句中要这样做的原因是,它可能会遍历一个大的子图,只是为了后来发现大部分可以被忽略。对于大量的历史关系来说尤其如此。

我可以使独立的validFrom和validUntil关系到特定的日期节点。这样我可以使用MATCH。如果我有一组有限的时间节点,这将是确定的,但是当我必须存储时间戳时,执行此操作是不切实际的。

如何优化Cypher以进行此类查询? 如何对具有时间有效性指标的节点和关系进行时间切片?

+0

Cypher支架自动拉入表达式匹配子句只要有可能,所以他们只要他们进行评估。 – 2013-03-14 12:18:42

+0

你真的可以显示你的查询吗? – 2013-03-14 12:19:21

+0

您是否想出了一个适用于此的解决方案? – John 2015-07-18 23:16:33

回答

4

你见过这里所描述的时间线造型:http://docs.neo4j.org/chunked/milestone/cypher-cookbook-path-tree.html

+1

这适用于有限的事件时间,但不能将时间模型化为秒或更小。这是我已经建议的,但没有扩展。 – ignazw 2013-03-12 16:51:42

+0

如何使用上述模型照顾日子,并只保留节点上的时间?不确定您拥有的数据类型,但您也可以将相同的模型扩展到时间,并根据需要创建时间关系......再次,这对于您拥有的数据模式可能不切实际 – Luanne 2013-03-12 17:22:36