Neo4j Cypher未知错误

Neo4j Cypher未知错误,neo4j,cypher,Neo4j,Cypher,因此,我根据本文创建了一个日期维度 我修改了它,并将日期戳添加到日期节点,即月/日/年(字符串) 我在Year.Year、Month.Month、Day.Day和Day.datestamp上添加了索引 运行此查询时: 匹配p=(第2天:日期{日期戳:'1/1/2015'})-[:下一个*]->(日期{日期:2}) 返回长度(p) 限制5 执行需要1667毫秒 当我将查询修改为以下内容时: 匹配p=(第2天:日期{日期戳:'1/1/2015'})-[:下一个*]->(日期{日期戳:'1/2/20

因此,我根据本文创建了一个日期维度

我修改了它,并将日期戳添加到日期节点,即月/日/年(字符串)

我在Year.Year、Month.Month、Day.Day和Day.datestamp上添加了索引

运行此查询时:

匹配p=(第2天:日期{日期戳:'1/1/2015'})-[:下一个*]->(日期{日期:2}) 返回长度(p) 限制5

执行需要1667毫秒

当我将查询修改为以下内容时:

匹配p=(第2天:日期{日期戳:'1/1/2015'})-[:下一个*]->(日期{日期戳:'1/2/2015'}) 返回长度(p)

运行大约一分钟后,它以未知错误消息结束

我的模式是:

索引

日期:在线日
日期:日(邮戳)在线
ON:月(月)在线
日期:年(年)在线

无约束


你知道我做错了什么吗?

我想我知道了

看起来运行1667ms的第一个查询由于限制5而仅运行并完成,它会找到5条记录并停止进一步执行

而另一个则一直跑啊跑,直到没油为止

我认为这种情况下的解决方案是约束,它表明日期戳是唯一的,这将阻止进一步执行


仍然有趣的是,考虑到有2600多条记录与HAS_NEXT连接,所以浏览这些关系不需要花这么长时间就能发现只有一条记录与该查询匹配

你能在什么地方共享你的数据库吗?这似乎是一个有趣的问题。另外,您正在运行哪个Neo4j版本?能否尝试运行
MATCH p=shortestPath(day2:Day{datestamp:'1/1/2015'})->(Day{Day:2})返回长度(p)limit 5