neo4j简易配置方案 - peter-xbs/CommonCodes GitHub Wiki

经典参考文档【重点】:

https://www.zmonster.me/2019/04/30/neo4j-introduction.html

建立索引

CREATE INDEX ON :<LabelName>(<propertyKey>)

原作笔记

  1. 拉取镜像
docker pull centos
docker run -it centos /bin/bash
  1. 安装neo4j
# 1、使用yum下载安装neo4j,参照以下官方的安装说明

# Neo4j Stable Yum Repo
# First, you'll want our key:

cd /tmp
wget http://debian.neo4j.org/neotechnology.gpg.key
rpm --import neotechnology.gpg.key
# Then, you'll want to add our yum repo to /etc/yum.repos.d/neo4j.repo:

cat <<EOF>  /etc/yum.repos.d/neo4j.repo
[neo4j]
name=Neo4j Yum Repo
baseurl=http://yum.neo4j.org/stable
enabled=1
gpgcheck=1
EOF
# Finally, install a package

yum install neo4j
  1. neo4j配置
# 1)若使除安装neo4j的本机外的浏览器可以通过web端访问neo4j的可视化界面,需要执行以下操作

vim /etc/neo4j/neo4j.conf

# 把下面这段内容的注释取消(把“#”删掉即可)

dbms.connectors.default_listen_address=0.0.0.0

# 2)开放防火墙7474端口

firewall-cmd --permanent --add-port=7474/tcp

firewall-cmd --reload
# 若firewall不存在,可执行
yum install firewalld firewall-config

# 3.启动neo4j

sudo neo4j start

# 或

sudo neo4j console

# 打开浏览器输入地址http://(服务器ip地址或域名):7474/,即可查看web端的控制台,登录访问即可,默认用户名neo4j,密码neo4j。
# 有可能有打不开的现象,本次是在docker 虚拟机中运行,两个端口均需要映射,即docker run -p 7687:7687 -p 7474:7474 即可解决,进入后重置密码

# neo4j.conf中的修改
dbms.connectors.default_listen_address=0.0.0.0
dbms.connector.bolt.enabled=true
dbms.connector.bolt.address=0.0.0.0:7687
dbms.connector.http.enabled=true
dbms.connector.http.listen_address=:7474
dbms.connector.https.enabled=true
dbms.connector.https.listen_address=:7473
  1. py2neo写入图数据库

上一步中将密码重置为ssss,在本节使用:

# -*- coding: utf-8 -*-

from py2neo import Graph, Node, Relationship, NodeMatcher
from py2neo.matching import RelationshipMatcher

# 连接数据库
graph = Graph("http://127.0.0.1:7474", username="neo4j", password='ssss')

# 创建节点
p1 = Node("Person", name="张三")
p2 = Node("Person", name="李四")
graph.create(p1)
graph.create(p2)

# 创建关系
r = Relationship(p1, "认识", p2)
graph.create(r)

# 节点查询
mather = NodeMatcher(graph)
result = mather.match("Person", name="张三").first()
print(result)
# (_0:Person {name: '\u5f20\u4e09'})


# 查询关系
relation_matcher = RelationshipMatcher(graph)
ret = relation_matcher.match((result,), r_type="认识").first()
print(ret)
# (张三)-[:认识 {}]->(李四)

# 直接运行cypher语句
ret = graph.run('match(p:Person{name:"李四"}) return p').data()
print(ret)
  1. 经典Cypher语句记录
  2. 节点一般圆括号表示,关系中括号表示,属性用花括号表示。
  3. 经典关系查询语句
match (p:Person{name:"张三"})-[:`认识`]->(p2) return p2;
  1. 经典节点查询语句
match(p:Person) where p.name="张三" return p;
  1. 创建Nodes
create (:Person {name:"王五", age:"65"})
  1. 删除Nodes(匹配到name为王五,但年龄信息缺失的节点并删除)
match (p:Person) where p.name="王五" and p.age is null delete p;
  1. 创建关系
match (a:Person), (b:Person) where a.name="王五" and b.name="李四" create (a)-[r:`认识`]->(b) return r
  1. 删除关系
match ()-[r:`认识`]->() delete r

NEO4数据迁移

https://blog.csdn.net/qq_42586468/article/details/121415884

⚠️ **GitHub.com Fallback** ⚠️