Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j空间和OSM数据的性能问题_Neo4j_Openstreetmap_Spatial - Fatal编程技术网

Neo4j空间和OSM数据的性能问题

Neo4j空间和OSM数据的性能问题,neo4j,openstreetmap,spatial,Neo4j,Openstreetmap,Spatial,这是我第一个使用Neo4j和相关的spatial插件的项目。我的表现远远低于我的预期,也低于这个项目所需要的。作为一个noob,我可能遗漏了什么或者误解了什么。帮助是值得感激和需要的 当我试图找到周围的OSM路径,到达lat/lon指定的点,以处理驾车旅行的GPS读数时,Neo4j和Spatial插件的响应时间非常慢。我正在调用spatial.nestest(“layer',{lon,lat),0.01),处理和返回大约25-100个节点需要6-11秒 我正在MacBook Pro 16GB/5

这是我第一个使用Neo4j和相关的spatial插件的项目。我的表现远远低于我的预期,也低于这个项目所需要的。作为一个noob,我可能遗漏了什么或者误解了什么。帮助是值得感激和需要的

当我试图找到周围的OSM路径,到达lat/lon指定的点,以处理驾车旅行的GPS读数时,Neo4j和Spatial插件的响应时间非常慢。我正在调用spatial.nestest(“layer',{lon,lat),0.01),处理和返回大约25-100个节点需要6-11秒

我正在MacBook Pro 16GB/512GB SSD上运行Neo4j社区版3.0.4和spatial 0.20。OSM数据是massachusetts-latest.OSM(美国马萨诸塞州)我正在通过bolt和Cypher访问它。已从浏览器客户端、python客户端、java客户端以及报告spatial存储过程计时的自定义版本完成了仪器化测试。Neo4j数据库大小约为44GB,包含76.5M节点和118.2M关系。模式和数据是来自奥斯米波特

为了隔离性能,我添加了一个名为spatial.timedClosest()的spatial.closest()的自定义版本。timedClosest()存储过程接受与spatial.closest()相同的输入并具有相同的调用,但返回一个流而不是一个流。该流具有存储过程的计时信息

存储过程的执行时间在内部调用getLayerRorThrow()和SpatialTopologyUtils.findClosestEdges()之间平均分配

1) 为什么getLayer(layerName)需要这么长时间才能执行?我很惊讶地发现getLayer(layerName)需要这么长的时间:2.5-5秒。只有一个层,即OSM层,直接从根节点开始。我看到对spatial.getLayer()的调用也有同样的效果.由于图层是许多空间过程的一个参数,这是一个大问题。有人对此有见解吗

2) 是否有方法加快SpaitalTopologyUtils.findClosestEdges()?是否有其他索引可以添加以加快空间邻近性搜索


我的理解是NeN4J能够处理数十亿个节点/关系。对于这个项目,我计划加载北美国OSM数据。从我对空间插件的理解来看,它具有空间管理和搜索功能,这将提供一个良好的启动基础。

< P> @ Bo Guo,抱歉延迟响应。我用geohash索引()替换了现有的索引。加载OSM数据时,对geohash区域的交叉口的道路和边界进行了测试。geohash在查找方面工作得很好。加载OSM数据仍然是一个难题。在北美,使用SATA SSD的8核中端AMD服务器上的OSM数据将需要几天到一周的时间。

这并不能解决您的问题,但如果您只想靠近边缘的话/您可以通过多种方式查看其他项目,如Postgis或为“地图匹配”目的而优化的项目(请注意,我是GraphHopper的作者之一)然后,对于一个城市,数据库将低于100MB,RAM使用率类似低。谢谢@Karussell。虽然有很好的建议,但该项目是一个技术评估/验证/客户概念验证项目。该阶段专门针对Neo4j,我需要负责任地拉动该线程。我已经对Postgis extens做了一些轻微提升ions支持OSM反向地理编码提名。@Blake,你的帖子发表已经三年多了。我想知道你是否可以分享你是否克服了性能问题,如果是,你是如何做到的。我们正在研究在类似OSM的空间应用中使用Neo4J。谢谢!