添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《 阿里云开发者社区用户服务协议 》和 《 阿里云开发者社区知识产权保护指引 》。如果您发现本社区中有涉嫌抄袭的内容,填写 侵权投诉表单 进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

安装启动

下载对应平台文件(社区版 neo4j-community-3.5.1)

https://neo4j.com/


neo4j-community-3.5.2-unix:

https://neo4j.com/artifact.php?name=neo4j-community-3.5.2-unix.tar.gz


解压 进入目录

$ ./neo4j start  # 启动
$ ./neo4j stop  # 停止

界面:http://localhost:7474/

首次使用:用户名、密码默认为 neo4j


两种方法清空数据库:

1、Cypher 语句:

match (n) detach delete n

2、删出文件


1、停掉服务
2、删除 graph.db 目录
3、重启服务

重要概念

1、节点

2、关系

3、属性


增删改查

1、添加4个节点

create(student:Student{id:1, name: "李雷"});
create(student:Student{id:2, name: "韩梅梅"});
create(teacher:Teacher{id:1, name: "仓老师"});
create(school:School{id: 1, title: "山东蓝翔"});

小写student 可以理解为面向对象的实体

大写Student 可以理解为面向对象的类

image.png


2、添加3个关系

match(s:Student{id:1}),(t:Teacher{id:1}) create (t)-[r:教授]->(s);
match(s:Student{id:2}),(t:Teacher{id:1}) create (t)-[r:教授]->(s);
match(s:School{id:1}),(t:Teacher{id:1}) create (t)-[r:就职于]->(s);

image.png

3、更新节点 老师改名字了


match(t:Teacher) 
where t.id=1 
set t.name="小泽老师"

4、删除节点 李雷被开除了


match(s:Student{id: 1}) 
detach delete s;

5、删除关系 小泽老师去别的班级上课了


match (t:Teacher)-[r:教授]->(s:Student) 
where t.id=1 and s.id=2 
delete r

6、索引操作

查看所有索引 
:schema
create index on:Student(name)
drop index on:Student(name)
创建唯一索引
create constraint on (s:Teacher) assert s.name is unique
删除唯一索引
drop constraint on (s:Teacher) assert s.name is unique

修改关系名称

MATCH (p:Person)-[r:投资]->(c:Company)
CREATE (p)-[r2:Invest{name:"投资"}]->(c)
// copy properties, if necessary
SET r2 = r
WITH r
DELETE r

https://stackoverflow.com/questions/22670369/neo4j-cypher-how-to-change-the-type-of-a-relationship


事务操作


from py2neo import Graph, Node, Relationship

g = Graph()
tx = g.begin()
a = Node("Person", name="Alice")
tx.create(a)
b = Node("Person", name="Bob")
ab = Relationship(a, "KNOWS", b)
tx.create(ab)
tx.commit()

批量导入

movies2.csv.

movieId:ID;title;year:int;:LABEL
tt0133093;'The Matrix';1999;Movie
tt0234215;'The Matrix Reloaded';2003;Movie|Sequel
tt0242653;'The Matrix Revolutions';2003;Movie|Sequel

actors2.csv.


Python多维/嵌套字典数据无限遍历的实现

pdf


personId:ID;name;:LABEL
keanu;'Keanu Reeves';Actor
laurence;'Laurence Fishburne';Actor
carrieanne;'Carrie-Anne Moss';Actor

roles2.csv.

:START_ID;role;:END_ID;:TYPE
keanu;'Neo';tt0133093;ACTED_IN
keanu;'Neo';tt0234215;ACTED_IN
keanu;'Neo';tt0242653;ACTED_IN
laurence;'Morpheus';tt0133093;ACTED_IN
laurence;'Morpheus';tt0234215;ACTED_IN
laurence;'Morpheus';tt0242653;ACTED_IN
carrieanne;'Trinity';tt0133093;ACTED_IN
carrieanne;'Trinity';tt0234215;ACTED_IN
carrieanne;'Trinity';tt0242653;ACTED_IN
The call to neo4j-admin import would look like this:

导入指令

$ bin/neo4j-admin import 
--nodes import/movies2.csv 
--nodes import/actors2.csv
--relationships import/roles2.csv 
--delimiter ";"
--array-delimiter "|" 
--quote "'"

配置外网访问

conf\neo4j.conf

#dbms.connector.http.listen_address=:7474
dbms.connector.http.listen_address=0.0.0.0:7474
#dbms.connector.bolt.listen_address=:7687
dbms.connector.bolt.listen_address=0.0.0.0:7687

配置环境变量:


#neo4j
export NEO4J_HOME=<neo4j_path>
export PATH=$PATH:$NEO4J_HOME/bin

参考:

Mac 搭建Neo4j环境
neo4j 初步认识和使用
Neo4j的简单搭建与使用
Neo4j 简单入门
neo4j----创建索引
https://neo4j.com/docs/operations-manual/current/tutorial/import-tool/
配置Neo4j服务器允许远程访问

图数据库neo4j数据导入、备份和恢复
在之前的文章中,介绍了如何搭建neo4j集群,集群的故障切换和节点恢复,还介绍了如何配置驱动实现自动failover。本文聚焦在neo4j的数据上。聊聊如何从外部数据源将数据导入neo4j,如何对neo4j数据库进行备份和恢复。 可以有多种方式将数据导入neo4j。大致分为cypher语句导入、apoc.load函数过程导入和离线import导入。 cypher语句导入 这个最简单,就是直接使用cypher语句的create或merge命令来创建neo4j的节点、边和属性。对比来说,create性能较好,但其不会进行存在与否的检查,可能会导致数据库中出现2个相同的节点等情况,
dasein58