加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Neo4j – Java堆空间.错误的查询或设置?

发布时间:2020-12-15 04:38:12 所属栏目:Java 来源:网络整理
导读:我有neo4j的问题. 我不知道问题是我的查询还是别的. 介绍 我必须构建一个存储公共汽车/火车路线的应用程序. 这是我的架构: 节点: 组织:有路线/公共汽车等的公司. 路线:巴士路线如:巴黎 – 柏林. 车辆(在这种情况下为公交车):带有独特车牌的Fisical公交
我有neo4j的问题.
我不知道问题是我的查询还是别的.

介绍

我必须构建一个存储公共汽车/火车路线的应用程序.
这是我的架构:

节点:

>组织:有路线/公共汽车等的公司.
>路线:巴士路线如:巴黎 – 柏林.
>车辆(在这种情况下为公交车):带有独特车牌的Fisical公交车.
>停止:指向具有纬度和经度的地图.

重要关系:

>下一个:这是一个非常重要的关系.

NEXT关系包含以下属性:

> startHour
> startMinutes
> endHour
> endMinutes
> dayOfWeek(从0到6 – 太阳,周一等……)
> vehicleId

enter image description here

问题

我的查询是:

MATCH (s1:Stop {id: {departureStopId}}),(s2:Stop {id: {arrivalStopId}})
OPTIONAL MATCH (s1)-[nexts:NEXT*]->(s2)
WHERE ALL(i in nexts WHERE toInt(i.dayOfWeek) = {dayOfWeek} AND toInt(i.startHour) >= {hour})
RETURN nexts
LIMIT 10

例如:我想找到所有nexts关系,其中dayOfWeek是星期日(0)和属性startHour> 11

之后我通常在我的nodejs后端解析并验证最终对象.

这在我开始时有效…与1k关系..
现在我有10k的关系,我的查询有一个TIMEOUT问题或查询在30s解决..太多时间……
我不知道如何解决这个问题.
我使用neo4j和docker,我试着阅读设置文档,但我不知道Java是如何工作的.

你能帮帮我们吗?

UPDATE

谢谢大家!
现在我用“allShortestPaths”解决了,但我想我会重命名所有关系(比如Michael Hunger所说).

解决方法

你有没有尝试过:

MATCH p=allShortestPaths((s1:Stop {id: {departureStopId}})-[:NEXT*]-> (s2:Stop {id: {arrivalStopId}}) )
WHERE ALL(i in RELS(p) WHERE toInt(i.dayOfWeek) = {dayOfWeek} AND toInt(i.startHour) >= {hour})
RETURN rels(p) as nexts
LIMIT 10

这应该使用快速最短路径算法,因为:

Planning shortest paths in Cypher can lead to different query plans depending on the predicates that need to be evaluated. Internally,Neo4j will use a fast bidirectional breadth-first search algorithm if the predicates can be evaluated whilst searching for the path.

有关详细信息,请参见https://neo4j.com/docs/developer-manual/current/cypher/execution-plans/shortestpath-planning/#_shortest_path_with_fast_algorithm.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读