1、准备 Neo4j 图数据库
1.1、准备JDK(升级)
由于使用的 Neo4j 版本(Neo4j_Desktop_1.2.4)要求JDK11及以上,因此下载了个新的JDK并转换过来。
具体JDK11安装过程在网上有很多,不再赘述,仅列出高版本遇到的问题供参考,如果没遇到,请跳过。
- JDK11和JDK12在安装之后是没有jre目录的:
如果需要,需自己手动建立!到 jdk 安装目录下,调出 cmd 命令行,输入命令手动生成 jre:
jlink.exe --module-path jmods --add-modules java.desktop --output jre
- 更新环境变量之后,在命令行模式查看java版本,仍然显示老版本:
之前版本会自动在 C:\Program Files (x86)\Common Files\Oracle\Java\javapath 目录下面生成三个文件,并且将 C:\Program Files (x86)\Common Files\Oracle\Java\javapath 添加到环境变量中,这三个文件的优先级比较高,会使 java -version 和 javac -version 一直显示老版本 JDK。解决方法:
1、删掉这三个文件
2、在环境变量 path 中删掉 C:\Program Files (x86)\Common Files\Oracle\Java\javapath
1.2、下载 Neo4j 图数据库
neo4j-desktop国内下载镜像:
http://doc.we-yun.com:1008/
里面还有neo4j其他资料
数据由微云数聚(北京)科技有限公司提供(Neo4j中国官方代理、战略合作伙伴及咨询服务提供商)
http://we-yun.com/index.php/blog/versions-56.html
注意配置 Neo4j 的环境变量。
2、Python 连接 Neo4j 图数据库
2.1、安装 Python 所需的连接驱动
pip install py2neo
可能会有安装包的依赖,因为是在 Anaconda 上拓展包,依赖包一般都有,如果有需要安装的提示,按照提示安装即可。
2.2、创建数据库并开启服务
安装成功后打开 Neo4j Desktop 工具:
新建一个图(本地的图存储就够练手了):
用户名:<自定义>
密码:<自定义>
点击 Start 按钮开启服务
Open Browser:启动可视化终端
Bolt、HTTP、HTTPS三个端口记住任意一个就可以
2.3、Pycharm 连接测试
from py2neo import Graph, Node, Relationship, cypher
test_graph = Graph(
"bolt://localhost:7687",
username="gjl",
password="gjl"
)
如果运行没问题,说明连接成功!
3、Neo4j 图数据库命令笔记
可自行看 W3Cschool 的 Neo4j 教程 学习!
简单整理如下:
- CREATE(创建)
创建节点,关系和属性 - MATCH(匹配)
检索有关节点,关系和属性数据 - RETURN(返回)
返回查询结果 - WHERE(条件)
提供条件过滤检索数据 - DELETE(删除)
删除节点和关系 - REMOVE(移除)
删除节点和关系的属性 - ORDER BY(以…排序)
排序检索数据 - SET(组)
添加或更新标签
3.1、CREATE
---------------------------------------- 创建无属性节点----------------------------------------
CREATE (<node-name>:<label-name>)
----------------------------------------创建带属性节点----------------------------------------
CREATE (
<node-name>:<label-name>
{
<property1-name>:<property1-value>
........
<propertyn-name>:<propertyn-value>
}
)
例如:
CREATE (
emp:Employee
{
id:123,
name:"Lokesh",
sal:35000,
deptno:10
}
)
注意:变量名不用引号,值域由于有类型,字符串类型需要加引号!
----------------------------------------创建关系----------------------------------------
3.2、MATCH & RETURN
MATCH (<node-name>:<label-name>)
RETURN
<node-name>.<property1-name>,
...
<node-name>.<propertyn-name>
未完待续。。。。。。