天天看點

Neo4j圖資料庫的安裝與基本增删改查安裝啟動重要概念增删改查批量導入配置外網通路

安裝啟動

下載下傳對應平台檔案(社群版 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 可以了解為面向對象的類

Neo4j圖資料庫的安裝與基本增删改查安裝啟動重要概念增删改查批量導入配置外網通路

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);
      
Neo4j圖資料庫的安裝與基本增删改查安裝啟動重要概念增删改查批量導入配置外網通路

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.

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      

參考:

  1. Mac 搭建Neo4j環境
  2. neo4j 初步認識和使用
  3. Neo4j的簡單搭建與使用
  4. Neo4j 簡單入門
  5. neo4j----建立索引
  6. https://neo4j.com/docs/operations-manual/current/tutorial/import-tool/
  7. 配置Neo4j伺服器允許遠端通路