Neo4j 的使用說明(基於V3.4.9)php
1、Neo4j簡介html
Neo4j是一個高性能的,NOSQL圖形數據庫,它將結構化數據存儲在網絡上而不是表中。它是一個嵌入式的、基於磁盤的、具有徹底的事務特性的Java持久化引擎,可是它將結構化數據存儲在網絡(從數學角度叫作圖)上而不是表中。git
Neo4j也能夠被看做是一個高性能的圖引擎,該引擎具備成熟數據庫的全部特性。程序員工做在一個面向對象的、靈活的網絡結構下而不是嚴格、靜態的表中——可是他們能夠享受到具有徹底的事務特性、企業級的數據庫的全部好處。(摘自百度百科)程序員
Neo4j當前有:Enterprise Server, Community Server github
當前的最新穩定版爲3.4.9數據庫
同時也提供了桌面操做管理工具:Neo4j Desktop(須要激活碼)編程
2、Neo4j的安裝瀏覽器
因條件限制以在win10 上安裝Community Server 爲例網絡
一、官網下載編程語言
相應版本https://neo4j.com/download-center/#releases
速度可能會較慢;
( 下載頁面提示默認的用戶名和密碼均爲neo4j )
可到http://we-yun.com/index.php/blog.html 找到網盤地址
可能不會是最新版
二、下載完成後,解壓便可
若是爲了方便更改dbms.directories.data的值,不建議進行安裝環境變量;dbms.directories.data 後面介紹
三、啓動neo4j
在neo4j 的目錄下面打開cmd, 輸入neo4j.bat console
出現下圖則啓動成功
最後一行的警告是經過瀏覽器訪問localhost:7474 的輸出日誌信息,具體的緣由尚不清楚,但目前並不影響正常使用
當關閉該cmd 窗口時,neo4j 服務也會關閉;所以可經過下面操做將其安裝爲服務。
非最新版或非官網下載可能會出現安裝失敗;
解決方案可參考https://blog.csdn.net/weixin_42103075/article/details/80473283
所以建議從官網下載最新穩定版
卸載服務使用 neo4j uninstall-service
如下相關的服務操做 bin\neo4j start
bin\neo4j stop
bin\neo4j restart
bin\neo4j status
也可以使用win10自帶的服務管理界面來進行啓動等操做
四、經過localhost:7474訪問
會出現下面界面(首次會出現登陸頁面)
五、測試:建立、查詢和刪除一個節點
建立一個標籤爲Person的節點,其有屬性 name 和age
查詢一個節點
刪除一個節點
上述僅僅是簡單的建立、查詢和刪除節點的Cypher 語句;
詳情請查閱相關的Cypher文檔
六、測試:建立、查詢和刪除關係
1)先建立三個節點:
create(:Person{name:"a"}),(:Person{name:"b"}),(:Person{name:"c"})
2)爲其中的兩個頂點添加邊:
match (n:Person{name:"a"}),(m:Person{name:"b"})
create (n)-[:R{type:"朋友"}]->(m)
或:match(n),(m) where n.name=」a」 and m.name=」b」
create (n)-[:R{type:"朋友"}]->(m)
其基本思想是先找到要添加邊的兩個頂點,再爲其建立邊
上述兩種方式是有缺陷的,由於有可能查出來不止一個節點,那麼就會爲許多匹配的節點都添加邊
上圖出現了警告
所以通常咱們再建立新節點的時候就要建立邊
例如:
create (n:Person{name:"d"}),(m:Person{name:"e"})
create (n)-[:R{type:"父子"}]->(m)
或:create (n:Person{name:"f"})-[r:R{type:"朋友"}]->(m:Person{name:"g"})
使用 return 語句,返回建立結果視圖
3)刪除關係(包含關係的查詢)
match (n:Person{name:"f"})-[r:R{type:"朋友"}]->(m:Person{name:"g"}) delete r [該方式已過期不推薦使用]或
match p=(n:Person{name:"d"})-[:R*1..2]->(m:Person{name:"e"})
delete p [推薦使用該語句]
說明:
第二條裏面的*1..2 查詢的路徑長度,最小爲1,最大爲2的關係爲R的路徑
在刪除關係以前要先查詢到該關係;
上述是簡單的Cypher實現,固然還有其它寫法;
可參考官方文檔學習 :
https://neo4j.com/docs/developer-manual/current/cypher/
七、基本的思想
Cypher 語句是Neo4j圖形數據庫的查詢語言
基本思想須要掌握的是:頂點的表示 (n)
關係(邊)的表示 (n)-[r]->(m)
這裏的n r m能夠看做是變量
詳細的語法可參考
https://neo4j.com/docs/developer-manual/current/cypher/syntax/patterns/#cypher-pattern-varlength
Cypher 內容豐富,與SQL 相似,一樣包含諸多函數等;基本上能知足各類需求。因時間關係,未能一一學習瞭解
3、Neo4j的使用方式
4、基於Neo4j Native Java API 的應用介紹
相關代碼放在https://github.com/infoo/Neo4j
一、使用Java Api 進行相關的增刪改查操做
若無可視化需求,能夠在不安裝neo4j server 的狀況下使用Neo4j,只須要導入Neo4j的jar包便可
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j</artifactId>
<version>3.4.9</version>
</dependency>
二、使用Java Api 執行 Cypher語句進行相關的增刪改查操做