docker pull neo4j
docker run --name my_neo4j -it --detach --publish=7474:7474 --publish=7687:7687 --volume=/usr/local/docker_pro/neo4j/data:/data --volume=/usr/local/docker_pro/neo4j/logs:/logs --volume=/usr/local/docker_pro/neo4j/conf:/var/lib/neo4j/conf --volume=/usr/local/docker_pro/neo4j/import:/var/lib/neo4j/import --env NEO4J_AUTH=neo4j/password neo4j
--name指定容器名字 --publish映射容器的端口号到宿主机的端口号 --volume把容器内的数据目录挂载到宿主机的对应目录下 neo4j //指定使用的镜像 --env设定数据库的名字的访问密码
在阿里云控制台开放7474和7687端口,linux也要打开这两个端口。
#防火墙开放端口
firewall-cmd --zone=public --add-port=7474/tcp --permanent
firewall-cmd --reload
#1.先运行neo4j控制台
docker exec -it my_neo4j /bin/bash
#2.将csv文件复制到import文件夹下
#3.在根目录下执行
bin/neo4j-admin import --database neo4j --nodes=import/entity_src.csv --relationships=import/relation_src.csv --ignore-extra-columns=true --skip-duplicate-nodes=true --skip-bad-relationships=true
dbms.tx_log.rotation.retention_policy=100M size
dbms.memory.pagecache.size=512M
dbms.default_listen_address=0.0.0.0
dbms.connectors.default_listen.address=0.0.0.0
dbms.connector.bolt.listen_address=0.0.0.0:7687
dbms.connector.http.listen_address=0.0.0.0:7474
dbms.default_database=graph.db
dbms.active_database=graph.db
dbms.allow_upgrade=true
#用与在控制台用load命令导入数据
dbms.directories.import=import
dbms.security.allow_csv_import_from_file_urls=true
dbms.directories.logs=/logs
浏览器访问ip:7474即可进入neo4j的browser页面,输入设置的账号和密码进行登陆,默认账号为neo4j
登陆成功就可以看到上面新增的数据,若需要在browser上进行新增可以使用load命令
##load方法用于加载中小量数据
##导入实体:
load csv with headers from "file:///entity_new.csv" as line
create(z:quiz{name:line.实体})
##导入关系:
load csv with headers from "file:///relation_new.csv" as line
match(from:quiz{name:line.实体1}),(to:quiz{name:line.实体2})
create(from)-[r:question{name:line.关系}]->(to)
create (n:新增人{name:'小明'})-[p:年龄{name:'年龄'}]->(m:年龄{name:19})
match p=(n) where n.name='小明' return n
# 基于n = name 查找最近的关系及实体
match p=(n)-[]->(m) where n.name = 'name' return n,m
# 基于n = name 查找最近的关系及实体-扩展到第二层
match p=(n)-[*1..2]->(m) where n.name = 'name' return n,m
# 模糊匹配
match p = (n)-[*1..2]->(m) where n.name =~ '.*ame' return n,m
基于py2neo库操作neo4j
创建数据
python 安装py2neo后,运行
# 连接数据库
from py2neo import Graph
graph = Graph('http://localhost:7474', username='second', password='123456')
#添加关系
name1 = '小夏'
relation = '年龄'
name2 = 19
graph.run("create (n:新增人{name:'%s'})-[p:年龄{name:'%s'}]->(m:年龄{name:%d})"%(name1,relation,name2))
#查看关系
res = graph.run("match p = (n) where n.name = '%s' return n"%(name1)).data()
print(res)
for i in res:
print(i['n']['name'])
#删除节点
graph.run("match (n) where n.name = '%s' detach delete n"%(name1))
res = graph.run("match p = (n) where n.name = '%s' return n"%(name1)).data()
print(res)
for i in res:
print(i['n']['name'])
查找数据
python 安装py2neo后,运行
from py2neo import Graph
graph = Graph('http://localhost:7474', username='second', password='123456')
name1 = 'AutoML'
res = graph.run("match p = (n:quiz)-[]->(m) where n.name = '%s' return m"%(name1)).data()
print(res)
for i in res:
print(i['m']['name'])
全部评论