问题标签 [neo4j-spatial]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
145 浏览

neo4j - 在 neo4j 空间中找不到几何图形

我正在使用 neo4j 空间 0.15 和 neo4j 2.3.3。我已经导入了一个 shapefile,并看到几何图形现在存在于我的数据库中。

在此处输入图像描述

在此处输入图像描述

现在,我想使用边界框找到所有几何图形。

当我浏览结果变量时,我看到没有几何返回。为什么它没有出现,即使我看到我的数据库中存在几何图形。

在此处输入图像描述

0 投票
1 回答
396 浏览

neo4j - 提高在 Neo4j Spatial 中查找最近节点的性能

我的目标是通过给定的经度和经度找到最近的节点。我创建了简单点层并且我正在使用findClosestGeometies查询,但是响应时间,即使是相对较小的数据库,也相当不令人满意。我执行以下操作以创建我的图层:

然后使用简单的 java 程序,我将 ~70k 节点添加到层并运行示例查询:

它正在工作,但每个响应需要或多或少 8 秒。有没有办法加快速度?任何想法我应该使用什么?

0 投票
1 回答
137 浏览

php - Neo4j Spatial 3.0.2:未找到索引提供程序“空间”

我正在尝试使用 neo4j 3.0.2 和 neo4j-spatial 为 3.0.2 创建空间数据库。我已经安装了插件,并检查了插件是否使用 cURL 运行curl -v http://neo4j:neo4j@localhost:7474/db/data/,输出如下:

现在我可以创建一个新的 simplePointLayer:

这将使用 rTree 创建空间根节点。但是当我现在想创建一个空间索引时:

我遇到了错误消息:

我究竟做错了什么?我检查了很多论坛等,但答案似乎总是安装我拥有的空间插件,它似乎根据第一个输出工作。

编辑 15.06.2016

奇怪的是我可以向 rTree 添加节点:

我可以通过 REST 查询节点:

但是为什么不让我创建索引呢?还是自动进行索引?如果是这样,我如何使用 CYPHER 进行查询(例如在 Web 控制台中)?

任何帮助,将不胜感激!干杯

0 投票
1 回答
257 浏览

maven - Neo4j 空间服务器插件 3.0.2 是否适用于 Neo4j 3.0.3 社区?

很长一段时间以来,我一直在努力使用我在网上找到的几种方法来安装 Neo4j 空间。

我正在使用 neo4j-community-3.0.3,但我不记得我是从哪个链接获得的。它是来自 ftp 站点的预编译版本(我相信它是 neo4j 网站某处的 /archives 文件夹,但我终生无法在 google 中找到它)。如果有人有下载neo4j预编译版本的链接,将不胜感激。neo4j other-releases 网页仅提供最新版本:https ://neo4j.com/download/other-releases/

我尝试从 github 编译我自己的 neo4j 版本,但老实说它非常令人困惑,因为目录树非常密集。似乎社区版和企业版都包含在同一个仓库中,没有自述文件,所以我什至不知道从哪里开始。

就插件而言,我已经尝试了预编译版本和我自己的编译版本。对于预编译,我已按照 git 页面上的说明进行操作。

https://github.com/neo4j-contrib/spatial#using-the-neo4j-spatial-server-plugin

我下载了 jar 文件,并将其复制到 $NEO4J_HOME/plugins/ 然后我重新启动了 neo4j 服务器。最后,我进行了其余调用以查看插件是否已加载,但我没有看到它。

编译的版本给了我同样的结果,只是需要更长的时间来实现。我克隆了版本 3.0.2 的 git repo,并运行以下命令:

注意:这个 mvn 命令实际上在某一时刻对我来说是失败的,但是经过一番谷歌搜索后,我发现这个命令有效

最后我跑

瞧,与以前完全相同的结果(没有插件列表)。

我从来没有安装过这么多的麻烦。我真的不想回到版本 2.*,因为我想利用带有 python 的新螺栓驱动程序,并获得最新和最好的性能。请,非常感谢任何帮助。(即使只是找到 Neo4j 预编译版本的直接链接档案也会对我有所帮助)。

0 投票
1 回答
342 浏览

java - 如何在 Neo4J 空间中创建 SimplePointLayer?

我在堆栈上看到了一些帖子,展示了如何创建一个 simplePointLayer。但是,这个过程对我来说失败了。我正在使用 Neo4J 版本 3.0.2 和空间插件版本 3.0.2。

来过这里这里这里

这些页面中的每一个都包含用于创建 SimplePointLayer 的相同说明集,如下所示。

这一步对我来说很好:

我不确定在哪里可以看到图层列表,但响应是 200,所以我假设这里一切正常。

以下步骤是我卡住的地方:

我在文件 tmp.json 中有上面的 json,然后我运行

这会生成以下消息:

我不知道从这里去哪里。我假设“提供者”是插件。我不是 JAVA 人,所以我不确定如何处理类路径。在\知道如何处理这个问题之前有没有人遇到过这个错误?

0 投票
0 回答
149 浏览

neo4j - 数据模型如何影响使用 CYPHER 的 neo4j 写入性能?

我一直在努力使用 Neo4J 3.0.3 为我的应用程序实现可接受的性能。这里有一些背景:

我正在尝试用 Neo4j 替换 Apache Solr,以扩展其功能,同时保持或提高性能。

在 Solr 中,我的文档基本上看起来像这样:

由于 Solr 是一个键值对数据存储,我对 Neo4J 的初始转换将很简单,因此我可以对使用 API 有所了解。

我的方法本质上是让每个 Solr 记录等同于一个 Neo4J 节点,其中每个键值都将成为一个节点属性。

显然需要进行一些调整(将 None 更改为“None”(python),将 ISO 时间更改为纪元时间(neo4j 不支持索引日期时间),将点更改为 lat/lon(neo4j 空间索引)等)。

我的目标是使用这个模型加载 Neo4J,不管它有多么幼稚。

这是我在加载单个记录时进行的休息调用的示例(使用 http:localhost:7474/db/data/cypher 作为我的端点):

请注意,我实际上已经删除了很多用于测试 neo4j 的参数。

目前我有严重的性能问题。对我来说,将这样的文档加载到 Solr 大约需要 2 秒。对于 Neo4J,它需要:

使用 REST API 约 20 秒

使用 BOLT 约 45 秒

使用 py2neo 约 70 秒

我有大约 50,000,000 条记录需要加载。在 Solr 中执行此操作通常需要 24 小时,因此 Neo4J 可能需要将近一个月!

我记录了这些时间,没有对我的“元”属性使用唯一性约束,也没有将每个节点添加到空间索引中。这种情况下的时间结果非常糟糕。

遇到这个问题,我尝试在线搜索性能调整。以下事情并没有改善我的情况:

- 将打开文件限制从 1024 增加到 40000

- 使用 ext4,并按照此处记录的方式对其进行调整

- 将页面缓存大小增加到 16 GB(我的系统有 32 个)

到目前为止,我只讨论了加载时间。在我一夜之间加载了大约 50,000 个节点后,我尝试对我的空间索引进行查询,如下所示:

以及我的时间索引,如下所示:

这些简单的查询实际上需要几分钟,可能只返回几个节点。

在 Apache Solr 中,空间索引非常快并且在 5 秒内响应(即使加载了所有 50000000 个文档)。

在这一点上,我担心这种性能滞后是否是由于我的数据模型的性质、我的服务器的配置等造成的。

我的目标是从这个模型中推断出来,并将几种测量类型移动到它们自己的节点类中,并创建从我的基本记录节点到这些的关系。

我是否有可能滥用 Neo4j,并且需要重新创建此模型以使用关系和几种不同的节点类型?我应该期待看到显着的改善吗?

作为旁注,我最初计划使用三重存储(特别是议会)来存储这些数据,在努力使用 RDF 之后,我认为 Neo4J 看起来很有前途,而且更容易启动和运行。回到 RDF 是否值得?

欢迎任何建议,提示,评论。先感谢您。

编辑:

正如评论中所建议的,我已经改变了加载脚本的行为。

以前我以这种方式使用python:

使用这种方法,实际的 .run() 语句几乎可以立即运行。.close() 语句是所有运行时间发生的地方。

我修改的方法:

我有点困惑,因为它的行为几乎相同。.close() 仍然需要大约 45 秒,只是它没有提交。由于我在每个语句中重用相同的标识符(CREATE (r:record {...}) .... CREATE (r:record {...}) ...),因此我收到了有关此的 CypherError行为。目前我真的不知道如何避免这个问题,此外,运行时间似乎根本没有改善(我希望一个错误实际上会使这个终止更快)。

0 投票
1 回答
514 浏览

neo4j - 如何有效过滤 Neo4j 中多个过程调用的结果

我设置了一个 GraphAware 时间树和空间 r 树来引用我图中的大量节点。我正在尝试按时间和空间搜索这些记录。

单独我可以在大约 5 秒内从这些查询中收集结果:

当我尝试过滤这些结果时,性能会急剧下降。Neo4j 已经在我的系统中使用了大量的内存,所以我的印象是这个命令的内存占用在我的系统上太多了,并且查询永远不会完成。(我正在使用 neo4j-shell 来运行这些命令)

我想知道有效过滤这两个语句调用结果的最佳方法是什么。我尝试使用 REDUCE 子句,但无法完全弄清楚语法。

作为一个附带问题,鉴于这是我将向我的数据库发出的最常见的查询类型,这是一种做事的好方法(如使用时间树和 r 树引用同一组节点)?我还没有在 neo4j 中找到任何其他支持在单个结构中同时索引空间和时间的工具,所以这是我当前的实现。

0 投票
2 回答
90 浏览

neo4j - 使用 neo4j 空间密码查询与 SDN4 存储库进行集成测试

我开始在我的一些代码中使用 neo4j-spatial。我认为我可以通过将空间服务器库作为 maven 依赖项包含在我的项目中来集成测试 neo4j-spatial 代码。不过,这对我不起作用。我在任何地方都找不到任何文档。

我怎样才能让我的集成测试工作?

任何提示任何人?:)

只是为了说明我在做什么,我在下面粘贴了我的控制器、服务和存储库代码的一部分,最后的代码发布是我的测试,这些测试不适用于嵌入式 TestServer。

存储库

服务

控制器

服务测试

(这是我的测试,我无法作为针对嵌入式 TestServer 的标准构建的一部分工作)

0 投票
1 回答
156 浏览

java - Neo4j-spatial maven 构建失败

我知道有一个类似的问题(质疑:Neo4j Spatial: can't run spatial),但是在安装依赖项时似乎解决了这个问题。我认为这不是我的情况的解决方案。

安装 Neo4j 和安装 maven 之后

创建一个名为 spatial 的目录并将 neo4j-spatial 克隆到该文件夹​​。

然后我尝试 maven 安装这个 git clone。

经过大量测试后,它返回“构建失败”

在我解决这个“构建失败”的问题中,我发现大多数 Maven 安装错误是由于依赖关系造成的。但是,这些错误消息并不表示缺少任何依赖项?

我尝试使用 mvn verify 但这似乎只是尝试再次构建插件返回相同的构建失败。

两个问题;- 我是否缺少依赖项或其他问题?- 如果我缺少依赖项,它们是什么以及如何安装它们?

提前致谢!

0 投票
1 回答
38 浏览

java - Neo4j-spatial 导入 OSM 不匹配顶点卡住了?

与这个问题相关(Neo4j-spatial importing OSM mismatching vertices found)。这个寻找不匹配的过程被卡住了。

然后就卡住了...

对此有什么解释吗?我做错什么了吗?