Neo4j – Java堆空间.错误的查询或设置?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Neo4j – Java堆空间.错误的查询或设置?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1815字,纯文字阅读大概需要3分钟。
内容图文
我有neo4j的问题.
我不知道问题是我的查询还是别的.
介绍
我必须构建一个存储公共汽车/火车路线的应用程序.
这是我的架构:
节点:
>组织:有路线/公共汽车等的公司.
>路线:巴士路线如:巴黎 – 柏林.
>车辆(在这种情况下为公交车):带有独特车牌的Fisical公交车.
>停止:指向具有纬度和经度的地图.
重要关系:
>下一个:这是一个非常重要的关系.
NEXT关系包含以下属性:
> startHour
> startMinutes
> endHour
> endMinutes
> dayOfWeek(从0到6 – 太阳,周一等……)
> vehicleId
问题
我的查询是:
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.
内容总结
以上是互联网集市为您收集整理的Neo4j – Java堆空间.错误的查询或设置?全部内容,希望文章能够帮你解决Neo4j – Java堆空间.错误的查询或设置?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。