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

Does Neo4j spatial server plugin 3.0.2 work with Neo4j 3.0.3 community?

我已经使用在 Web 上找到的几种方法努力安装 Neo4j spatial 一段时间了。

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

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

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

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

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

$ http :7474/db/data/ -a neo4j
http: password for neo4j@localhost:7474: 
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Content-Length: 795
Content-Type: application/json; charset=UTF-8
Date: Fri, 01 Jul 2016 19:49:44 GMT
Server: Jetty(9.2.9.v20150224)

{
    "batch": "http://localhost:7474/db/data/batch", 
    "constraints": "http://localhost:7474/db/data/schema/constraint", 
    "cypher": "http://localhost:7474/db/data/cypher", 
    "extensions": {}, 
    "extensions_info": "http://localhost:7474/db/data/ext", 
    "indexes": "http://localhost:7474/db/data/schema/index", 
    "neo4j_version": "3.0.3", 
    "node": "http://localhost:7474/db/data/node", 
    "node_index": "http://localhost:7474/db/data/index/node", 
    "node_labels": "http://localhost:7474/db/data/labels", 
    "relationship": "http://localhost:7474/db/data/relationship", 
    "relationship_index": "http://localhost:7474/db/data/index/relationship", 
    "relationship_types": "http://localhost:7474/db/data/relationship/types", 
    "transaction": "http://localhost:7474/db/data/transaction"
}

编译版本给了我相同的结果,只是需要更长的时间才能实现。我为版本 3.0.2 克隆了 git 存储库,并且 运行 以下内容:

git clone git://github.com/neo4j/spatial.git spatial
cd spatial
mvn clean package -Dmaven.test.skip=true install

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

mvn clean compile package assembly:single -Dmaven.test.skip=true install

最后我运行

cp target/neo4j-spatial-0.17-neo4j-3.0.2-server-plugin.jar $NEO4J_HOME/plugins
$NEO4J_HOME/bin/neo4j restart

瞧,结果和以前完全一样(没有插件列表)。

我从来没有安装过这么麻烦的东西。我真的不想回到版本 2.*,因为我想利用带有 python 的新螺栓驱动器,并获得最新和最好的性能。请提供任何帮助,我们将不胜感激。 (即使只是找到直接 links 到 neo4j 预编译版本的存档也会帮助我)。

好的,所以我想出了几个可能导致我困惑的问题。

问题 1: 如果以 root (sudo) 身份启动服务器,则必须以 root 身份停止服务器!

问题二: 确保您没有同时拥有另一个版本 运行(默认端口 7474)。

我认为这 2 个问题的结合是我问题的真正罪魁祸首。如果 Neo4J 在启动时能够检查该端口是否已被使用,那就太好了。

此外,当尝试以原始用户以外的其他人身份停止服务时,这非常令人困惑,Neo4J 显示以下输出:

$ sudo bin/neo4j start
Starting Neo4j.
WARNING: Max 1024 open files allowed, minimum of 40000 recommended. See the Neo4j manual.
Started neo4j (pid 25418). By default, it is available at http://localhost:7474/
There may be a short delay until the server is ready.
See /opt/neo4j/neo4j-community-3.0.2/logs/neo4j.log for current status.

$ bin/neo4j stop
Neo4j not running
rm: remove write-protected regular file ‘/opt/neo4j/neo4j-community-3.0.2/run/neo4j.pid’? ^C

最后一行引起了我的注意,然后在 运行

之后
$ ps aux | grep neo

我发现 Neo4j 实际上是 运行。

就下载 link 而言,感谢 William 在上面的评论中。 他向我指出 http://dist.neo4j.org/neo4j-community-3.0.2-unix.tar.gz, 我想如果他们想要其他的,可以只更改 url 中的版本号。

所以弄清楚这一点后,我发现 3.0.2 空间插件确实出现在 http://localhost:7474/db/data/ 对 neo4j 版本 3.0.3 的响应中。但是,为了安全起见,我将坚持使用 neo4j 3.0.2 版。