Graph 在时间图中搜索一系列事件

Graph 在时间图中搜索一系列事件,graph,neo4j,Graph,Neo4j,我试图实现这篇博文中的图表: blogpost中有一个图表的示意图和一个关于如何查找一系列事件的查询。然而,在我的用例中,我没有设置连续的天数。例如,图的当前状态可能是从2013年7月12日(2013年7月12日)到2013年8月12日(2013年8月12日)。那么,在2014年7月12日添加活动时,我错过了整整一年的中间时间 第一个问题是,若我开始编写那个些天生成的查询,它可能会变得非常慢(应用程序需要响应)。第二个问题是我最后几天没有任何事件发生,所以我的数据库中有不必要的数据 因此,我的问

我试图实现这篇博文中的图表:

blogpost中有一个图表的示意图和一个关于如何查找一系列事件的查询。然而,在我的用例中,我没有设置连续的天数。例如,图的当前状态可能是从2013年7月12日(2013年7月12日)到2013年8月12日(2013年8月12日)。那么,在2014年7月12日添加活动时,我错过了整整一年的中间时间

第一个问题是,若我开始编写那个些天生成的查询,它可能会变得非常慢(应用程序需要响应)。第二个问题是我最后几天没有任何事件发生,所以我的数据库中有不必要的数据


因此,我的问题是:如果不使用两天之间的下一个关系,我如何获得一系列事件?

为什么使用下一个关系从2013年8月12日链接到2014年7月12日是一个问题,如果中间没有任何关系?如果我这样做,那么当我在2014年1月1日进入新的一天时,我会有以下关系:12-8-2013-[:NEXT]->2014年7月12日,2013年8月12日-[:下一个]>2014年1月1日,2014年1月1日-[:下一个]>2014年7月12日。现在有三种关系,我只需要一种。随着时间的推移,这将积累大量不必要的关系,因此我必须定期执行清理查询,这不太理想。我认为一旦发生,您应该尽快清理它!这就是树索引的工作原理。你很少知道前面叶子的价值(就像博客文章中彼得的树)。因此,当插入一个新日期时,你应该相应地重新链接下一个关系——这不是一个大任务。这取决于查询查找前一天和第二天(位于任意位置)的费用有多高。如果是全天查找,那么这棵树在性能上就没有多大帮助了(读起来仍然很快,但写起来要慢得多)。如果我的假设是错误的,你可以发布你的答案,如果答案是好的,我可以接受。事实上,这不是一个任意的位置,你会在O(log(n))时间内找到它(参见)。我现在无法为您编写代码,但我计划将这种功能添加到我的Neo4j“GraphAware”框架中,但不幸的是,这周不会。这真的取决于,您是想构建一个完整的B树,还是有固定的年份和月份(每个节点一个)。。。顺便说一下,我还建议将年和月节点与下一个关系连接起来,这将加快查找速度。。。如果还不晚的话,我建好后会告诉你的。