Neo4j 學習筆記

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的使用方式

  1. 基於瀏覽器的可視化,使用Cypher語句進行相關操做
  2. 基於Java 等編程語言的API 操做

4、基於Neo4j Native Java API 的應用介紹

       相關代碼放在https://github.com/infoo/Neo4j

一、使用Java Api 進行相關的增刪改查操做

   若無可視化需求,能夠在不安裝neo4j server 的狀況下使用Neo4j,只須要導入Neo4jjar包便可

   <dependency>
    <groupId>org.neo4j</groupId>
    <artifactId>neo4j</artifactId>
    <version>3.4.9</version>
</dependency>

 

二、使用Java Api 執行 Cypher語句進行相關的增刪改查操做

相關文章
相關標籤/搜索