Neo4j 查找具有3+;10分钟内发生的事件

Neo4j 查找具有3+;10分钟内发生的事件,neo4j,cypher,Neo4j,Cypher,我有一个带有startTime属性的节点列表。我需要确定列表中是否包含一个由3个或更多个节点组成的集群,每个节点在10分钟内具有startTime。我不需要获取集群中的节点,我只需要一个布尔值来指示集群的存在 我不知所措,我尝试过的每件事都失败得很厉害,不值得发布它们 我觉得我错过了一些简单的事情。这应该是可行的 首先,您需要收集startTimes,订购并收集它们 从这里开始,您需要获得相关的配对(每个条目,以及持续时间结束时前面的条目2索引),这将包括一组3,然后查看该配对的开始时间是否在彼

我有一个带有
startTime
属性的节点列表。我需要确定列表中是否包含一个由3个或更多个节点组成的集群,每个节点在10分钟内具有
startTime
。我不需要获取集群中的节点,我只需要一个布尔值来指示集群的存在

我不知所措,我尝试过的每件事都失败得很厉害,不值得发布它们

我觉得我错过了一些简单的事情。

这应该是可行的

首先,您需要收集startTimes,订购并收集它们

从这里开始,您需要获得相关的配对(每个条目,以及持续时间结束时前面的条目2索引),这将包括一组3,然后查看该配对的开始时间是否在彼此之间的10分钟内

假设为了示例:具有
startTime
属性的事件节点,可以使用此查询获得所需的结果:

MATCH (e:Event)
WITH e
ORDER BY e.startTime ASC
WITH collect(e.startTime)[1..] as times
WITH times, range(0, size(times) - 3) as indices
RETURN any(index in indices WHERE times[index + 2] <= times[index] + duration({minutes:10}))
匹配(e:事件)
带e
由e.startTime ASC订购
使用collect(例如startTime)[1..]作为时间
以时间、范围(0、大小(时间)-3)作为索引
返回任何(索引中的索引,其中时间[index+2]这应该是可行的

首先,您需要收集startTimes,订购并收集它们

从这里开始,您需要获得相关的配对(每个条目,以及持续时间结束时前面的条目2索引),这将包括一组3,然后查看该配对的开始时间是否在彼此之间的10分钟内

假设为了示例:具有
startTime
属性的事件节点,可以使用此查询获得所需的结果:

MATCH (e:Event)
WITH e
ORDER BY e.startTime ASC
WITH collect(e.startTime)[1..] as times
WITH times, range(0, size(times) - 3) as indices
RETURN any(index in indices WHERE times[index + 2] <= times[index] + duration({minutes:10}))
匹配(e:事件)
带e
由e.startTime ASC订购
使用collect(例如startTime)[1..]作为时间
以时间、范围(0、大小(时间)-3)作为索引

返回任何(索引中的索引,[index+2]次数失败的原因是什么?您是得到错误的结果还是查询完成时间太长?如何失败?您是得到错误的结果还是查询完成时间太长?