Neo4j 學習筆記(-)


Neo4j 的使用說明(一)(基於V3.4.9)

下一篇(二):https://www.cnblogs.com/infoo/p/11947467.html

一、Neo4j簡介

Neo4j是一個高性能的,NOSQL圖形數據庫,它將結構化數據存儲在網絡上而不是表中。它是一個嵌入式的、基於磁盤的、具備完全的事務特性的Java持久化引擎,但是它將結構化數據存儲在網絡(從數學角度叫做圖)上而不是表中。

Neo4j也可以被看作是一個高性能的圖引擎,該引擎具有成熟數據庫的所有特性。程序員工作在一個面向對象的、靈活的網絡結構下而不是嚴格、靜態的表中——但是他們可以享受到具備完全的事務特性、企業級的數據庫的所有好處。(摘自百度百科)

Neo4j當前有:Enterprise Server,  Community Server

當前的最新穩定版為3.4.9 (2018年10月)

同時也提供了桌面操作管理工具:Neo4j Desktop(需要激活碼)

本文從Neo4j的下載,安裝,和Cypher簡單使用。介紹一下Neo4j的入門

二、Neo4j的安裝

       因條件限制以在win10 上安裝Community Server 為例

1、官網下載

     相應版本https://neo4j.com/download-center/#releases

       速度可能會較慢;

 

         下載頁面提示默認的用戶名和密碼均為neo4j   )

       可到http://we-yun.com/index.php/blog.html 找到網盤地址

       可能不會是最新版

2、下載完成后,解壓即可

     如果為了方便更改dbms.directories.data的值,不建議進行安裝環境變量;dbms.directories.data 后面介紹

3、啟動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自帶的服務管理界面來進行啟動等操作

 

 

 

4、通過localhost:7474訪問

    會出現下面界面(首次會出現登錄頁面)

 

 

5、測試:創建、查詢和刪除一個節點

  

    創建一個標簽為Person的節點,其有屬性 name age

 

 

查詢一個節點

 

 

刪除一個節點

 

上述僅僅是簡單的創建、查詢和刪除節點的Cypher 語句;

詳情請查閱相關的Cypher文檔

 

6、測試:創建、查詢和刪除關系

       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/

7、基本的思想

   Cypher 語句是Neo4j圖形數據庫的查詢語言

   基本思想需要掌握的是:頂點的表示 (n)

   關系(邊)的表示 (n)-[r]->(m)

   這里的n r m可以看作是變量

   詳細的語法可參考

https://neo4j.com/docs/developer-manual/current/cypher/syntax/patterns/#cypher-pattern-varlength

Cypher 內容豐富,與SQL 類似,同樣包含諸多函數等;基本上能滿足各種需求。因時間關系,未能一一學習了解

三、Neo4j的使用方式

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

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

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

1、使用Java Api 進行相關的增刪改查操作

   若無可視化需求,可以在不安裝neo4j server 的情況下使用Neo4j,只需要導入Neo4jjar包即可

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

 

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM