Neo4j学习记录
这几天在整理医药知识图谱案例代码时,发现Neo4j服务每次需要命令行启动,而且管理更换数据库时相当不友好,所以去官网下载了Neo4j Desktop,然后漫长作死的踩坑路就这样开始了……在这里记录一下图数据库Neo4j的入门和出现的各种问题。
Neo4j简介
Neo4j是知识存储常用图数据库的代表,简而言之就是将结构化的数据存储在图中,而不是表上,能够减少冗余数据的存储,方便查询。作为一个高性能的图数据库,它的优势和应用场景可参考这篇Neo4j系列-简介及应用场景(一),对它有更加全面的认识(康康它究竟有多么优秀)。
Neo4j安装、部署和测试
基本环境
- 操作系统 win10
- JDK 1.8
命令行java -version
可查看JDK版本,若未安装,首先去Oracle官网下载Java SE JDK(可参考教程)。
下载
官网下载最新的community版本,我下的是neo4j-community-3.5.5-windows
版本,现在已经更新到4.0.0了
解压后,Neo4j应用程序的目录结构如下
修改配置文件
找到conf目录下的neo4j.conf修改配置文件,把#去掉
启动Neo4j
命令行进入解压目录下的bin目录,运行控制台命令neo4j.bat console
,出现以下信息
注:这里可以配置环境变量,将neo4j的 bin目录添加到环境变量的 PATH里,就可以不用每次都 cd到该 bin目录了。
不要关闭控制台的服务,在浏览器打开http://localhost:7474/
默认用户名和密码都是neo4j,登录后界面如下就成功了。
开启Neo4j服务
将其配置为服务,运行控制台命令neo4j install-service
,而后可以通过neo4j start
启动, neo4j stop
停止。
Neo4j Desktop
由于前面的Neo4j服务每次都命令行方式打开,切换数据库也非常麻烦,需要修改配置文件来更改active datebase,因此安装Neo4j Desktop方便使用。
但是需要注意的是,安装好打开Neo4j Desktop后,会有一步选择数据的存储路径,当你choose完路径之后,疯狂点击confirm都毫无反应,无法进行下一步,非常令人困惑。触及到我的知识盲区.jpg
这里参考Stack Overflow的解决方案。
原因是在选择存储数据的路径时,系统需要WMIC获取逻辑磁盘可用空间的大小,而WMIC未设置环境变量,因此在系统环境变量的PATH里添加C:\Windows\System32\wbem
,完美解决。
而后跟随教程创建本地graph,命名为MedicalGraph。
然而在开启时开始报错,如下
原因是当前服务已被其他进程占用(这里是因为我在命令行打开了neo4j服务,端口7474默认连接了数据库graph.db)解决参考org.neo4j.Kernel.StoreLockException
关闭控制台的服务后,开启成功,可以看到MedicalGraph的信息
此时的状态为running,可开始进行下一步图谱的构建啦
总结
因为之前没有下Neo4j Desktop,又忘记改配置文件的active database,导致两个案例的数据导入到了一个图谱里面,完全乱了,白白费了好几个小时 [头秃.jpg] 导数据前一定一定一定要看好当前的数据库是哪个!!