通过 Docker 灵活部署 Neo4j 图数据库

本文将从 neo4j 数据库部署、参数配置和百万级数据的快速写入方法三方面来介绍图数据库的部署与使用。

1. Neo4j部署

在 Linux 服务器上,可使用 Neo4j 官方 Docker 镜像快速部署图数据库服务。具体命令如下:

docker run -d --name neo4j  -p 7474:7474 -p 7687:7687  -v /home/neo4j/data:/data  -v /home/neo4j/logs:/logs  -v /home/neo4j/conf:/var/lib/neo4j/conf  -v /home/neo4j/import:/var/lib/neo4j/import  --env NEO4J_AUTH=user/keys  neo4j:5-community

需要注意的是,绝对不能修改 Docker 本地共享文件夹的权限设置(如 /home/neo4j/conf 等),否则会引起容器启动后立即崩溃,无法正常使用服务。

2. Neo4j 参数配置

从容器目录 /var/lib/neo4j/conf 删除 neo4j.conf 配置文件后,从本地拷贝设置好的配置文件到该目录1,然后重启 docker 容器即可使配置修改生效。(neo4j v5.0 conf配置文件)

3.数据导入方法

首先将待写入的 csv 数据放置到 /home/neo4j/import 目录下,然后通过 py2neo 使用 python,或直接执行 Cypher 命令以写入实体,Cypher 命令及 csv 文件数据格式如下(Neo4j 三元组数据快速导入源码):

LOAD CSV FROM "file:///no.csv" AS line 
CREATE (no:专利申请号 {name:line[0]})
RETURN no.name as name, id(no) as id
CN201511024078
CN201511024078
CN201511024078
CN201511024078

通过 return 得到实体节点在数据库中的索引id,在关系创建时,通过索引id 匹配实体速度有显著提高。创建关系的 Cypher 命令及 csv 数据格式如下:

LOAD CSV FROM "file:///no2bz.csv" AS line 
MATCH (no), (bz) WHERE id(no)=toInteger(line[0]) AND id(bz)=toInteger(line[1]) 
CREATE (no)-[r:制作步骤]->(bz)
25062,213366
141925,218909
112775,215782
100256,210661

  1. 配置文件设置方法参考自:Neo4j安装部署教程 ↩︎

你可能感兴趣的:(#,自然语言处理,环境配置,neo4j,docker,数据库)