我有以下NEO4J查询,它不会返回任何内容:
MATCH (:TimetreeRoot)-[:CHILD]->(year:Year)-[:CHILD]->(month:Month)-[:CHILD]->(day:Day)
WHERE year.value = 2016 AND month.value = 4 AND day.value = 26
MATCH (day)-[:CHILD]->(bhour:Hour)-[:CHILD]->(bminute:Minute)
WHERE bhour.value = 8 and bminute.value = 0
MATCH (day)-[:CHILD]->(ehour:Hour)-[:CHILD]->(eminute:Minute)
WHERE ehour.value = 18 AND eminute.value = 0
MATCH p=shortestPath((bminute)-[:NEXT*]->(eminute))
RETURN collect(NODES(p))
当差异较小时(比如12小时和18小时),即遍历的NEXT
关系较少,它确实有效。
当我明确设置nr个跃点时,它也有效:
MATCH p=shortestPath((bminute)-[:NEXT*1..48]->(eminute))
所以我可以让它正常工作,但我的问题是:为什么我需要设置maxHops的nr?从手册:
minHops和maxHops是可选的,默认分别为1和无穷大 http://neo4j.com/docs/stable/query-match.html#match-variable-length-relationships
它不一定是大问题,因为我确实弄明白了如何让它发挥作用。但是,我想了解造成这个问题的原因。
答案 0 :(得分:3)