最近研究了一下neo4j这个数据库中如何使用sparql查询,鉴于现在真正实现的中文文档较少,故记录一下。
先亮答案: 亲测,官方 提供的 sparql-plugin 为一个可以使用的库,如果有同学想要在neo4j中使用 sparql 查询,直接使用这个库就可以了。
在基本尝试了市面上可以查找到的neo4j-sparql插件之后,我最后还是选择了官方的库。下面说一下原因:
目前没有一个库对,neo4j v3.+ 使用sparql 有良好的适应,并且neo4j v1.+基础库不完善,故把目标瞄准到 v2.+。
-
neo4j-sparql-extension
这个库可以提供了 可以在neo4j v2.1.5下良好的sparql查询实践,但是neo4j v2.1.5由于本身的残疾,还没有提供import shell 等工具,所以在导入 导出数据库方面,操作并不优秀。当数据量很大的时候,很难快速的生成数据库,所以最后没有选择; -
neo4j-sparql-extension-yars
这个库是在neo4j v2.1.8下运行, 忘记没有使用的原因。。 -
sparql-plugin
选择官方的库,并不是说明他没有问题。作为一个java小白,因为需要mvn重新打jar包,我基本是综合了以上三个库的github issue才正常跑通。心疼胖胖的自己。
选择这个插件原因,是它可以在正常运行的基础上,支持neo4j-import 等批量导入 导出的 neo4j v2.x 。(最终我使用的是v2.2上良好运行,没有使用v3+ 是因为blueprint等原因,没有找到一个完美运行的版本)
下面具体记录下 我遇到的问题:
-
blueprint 2.5.0 链接失效
Issue 12: Building neo4j-sparql-plugin 2.0-SNAPSHOT failed because http://repo.aduna-software.org/maven2/releases/ is down
解决办法在链接中有, 我贴一下我的截图:
image.png
image.png
<repository>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>ontotext.aduna</id>
<name>Maven repository of Aduna software - hosted by OntoText</name>
<url>[http://maven.ontotext.com/content/repositories/aduna/](http://maven.ontotext.com/content/repositories/aduna/)</url>
</repository>
解决办法: 替换依赖源链接,手动更新 blueprint 至 2.7.0,fix了这个问题。
- 打jar包报错
问题描述: issue 15 证书过期 , issue 9 跑测试出错
解决办法:
mvn clean package -Dlicense.skip=true -Dmaven.test.skip=true
打包时跳过对证书、测试的代码(一切以跑通为前提, =。=)

我花了一天的时间 终于在教程上走了一步
-
版本报错
这个jar包的 neo4j 版本 一定要和 使用的neo4j 版本相同(使用的neo4j版本在第一张图处,有贴),要不就会报一些奇奇怪怪的错误
image.png
最后把打完的jar包 解压到 $NEO4J_HOME/plugins/sparql-plugin, 重启neo4j 服务即可。
最后附上 官方文档 http://neo4j-contrib.github.io/sparql-plugin/
希望对诸君有所帮助,
以上
参考链接:
https://blog.csdn.net/OnlyQi/article/details/6820561
https://stackoverflow.com/questions/18664607/spa rql-plugin-master-neo4j
https://github.com/neo4j-contrib/gremlin-plugin/issues/41
http://blog.51cto.com/zephiruswt/1302770
之后应该是没机会再使用neo4j这个库了
网友评论