Neo4j浏览器已关闭

时间:2015-10-19 22:40:42

标签: neo4j garbage-collection cypher graph-databases

我目前正在使用neo4j 2.2.5。我有大约3000万真正的航班和大约数千个机场。我有FlightAirport个节点,还有HAS_FLIGHTFLYING_TO个关系。这些关系连接两个节点,源Airport节点已通过Flight关系与HAS_FLIGHT节点连接,Flight节点已通过FLYING_TO关系与目标{连接{1}}。

所以我的问题是,当我试图找到从伦敦市到东京市的最多2个机场或中转机场的航线时,我的查询将花费超过20分钟,最后连接丢失。

这是我的问题:

//从伦敦到东京的航班路径

Airport

1 个答案:

答案 0 :(得分:1)

上面的查询为您提供了最高级别为6的所有路径。在大多数情况下,您只需要最短的路径:

MATCH path = allShortestPaths( (london :Airport{city:'London'})-[:HAS_FLIGHT|FLYING_TO*0..6]->(tokyo :Airport{city:'Tokyo'}))
RETURN path;

shortestPathallShortestPaths速度要快得多,因为它们会跳过尽可能早地延长的路径。这应该会减少对内存和垃圾收集的压力。

还要像威廉在评论中提到的那样仔细检查索引。