Neo4j的簡單介紹

在構建知識圖譜的時候,Neo4j用來建立實體之間的關系非常方便,下面簡單介紹一下它的使用方法:

Neo4j數據庫可以使用以下幾個概念存儲任何種類的數據。

1,節點-圖形數據記錄

2,關系-連接節點

3,屬性-指定的數據值

Neo4j將數據存儲在Graph中,并將記錄成為節點

最簡單的圖只有一個名為屬性名為值的單個節點。我們先來繪制一下朋友的社交圖。

1,首先為節點繪制一個圓

2,添加名字為Email

3,這個人來自瑞典

節點是數據,數據是屬性,屬性是鍵值對,如下圖。

單個節點

標簽,關聯一組節點

節點可以通過每個成員的標簽組合在一起,在我們的社交圖中,我們將標記代表Person的每個節點。

1,將標簽Person應用到我們為Emil創建的節點

2,Person節點顏色呈紅色

一個節點可以有零個或多個標簽,標簽沒有任何屬性,如下圖。

帶有標簽的節點

更多節點,一般可以混合使用通用屬性

像任何數據庫一樣,在Neo4j中存儲數據可以像添加更多記錄一樣簡單,我們將添加更多的節點。

類似的節點可以有不同的屬性,屬性可以是字符串,數字或布爾值,Neo4j可以存儲數十億個節點。如下圖。

多個節點

關系-連接圖中的節點

Neo4j的厲害之處在于連接數據。要關聯任何兩個節點,請添加描述節點如何關聯的關系。

在我們的社交圖表中,我們只說誰知道誰:

1,Emil知道Johan和lan。

2,Johan知道Lan和Rik。

3,Rik和Lan知道Allison。

關系總有方向性的,關系總是有一種類型,關系形成數據模式,如下圖。

將多個節點用關系連接

關系屬性-存儲由兩個節點共享的信息

在屬性圖中,關系也可以包含屬性的數據記錄,仔細查看Emil的關系,請注意:

自2001年以來,Emil一直認識Johan,Emil和Ian的分為5(滿分為5),其他人都可以擁有類似的關系屬性,如下圖。

關系的屬性

屬性圖包含節點和關系,兩者都有屬性。

我們使用Cypher生成一個小型社交圖,Cypher是Neo4j對應的查詢語言,安裝好Neo4j,從瀏覽器進入到(默認)localhost:7474,登陸(賬號密碼默認為neo4j,成功后還需設置新密碼)然后在上方使用Cypher,如下圖。

查詢語言輸入欄

CREATE (ee:Person { name: "Emil", from: "Sweden", klout: 99 })

CREATE子句用來創建數據

()括號來表示一個節點

ee為新節點添加一個變量并標注Person

{}來向節點添加屬性

結果

查找節點

現在找到代表Emil的節點

MATCH (ee:Person) WHERE ee.name = "Emil" RETURN ee;

MATCH子句來指定節點和關系的模式

(ee:Person)具有標簽'Person'的單個節點模式,其將匹配變量'ee'

WHERE子句限制結果

ee.name =“Emil”將名稱屬性與值“Emil”進行比較

RETURN子句用于請求特定結果

結果

創建更多的節點和關系

MATCH (ee:Person) WHERE ee.name = "Emil"

CREATE (js:Person { name: "Johan", from: "Sweden", learn: "surfing" }),

(ir:Person { name: "Ian", from: "England", title: "author" }),

(rvb:Person { name: "Rik", from: "Belgium", pet: "Orval" }),

(ally:Person { name: "Allison", from: "California", hobby: "surfing" }),

(ee)-[:KNOWS {since: 2001}]->(js),(ee)-[:KNOWS {rating: 5}]->(ir),

(js)-[:KNOWS]->(ir),(js)-[:KNOWS]->(rvb),

(ir)-[:KNOWS]->(js),(ir)-[:KNOWS]->(ally),

(rvb)-[:KNOWS]->(ally)

CREATE可以一次創造很多節點和關系

結果

匹配-描述要在圖表中找到的內容

例如,一個模式可以找到Emil的朋友

MATCH (ee:Person)-[:KNOWS]-(friends) WHERE ee.name = "Emil" RETURN ee, friends

MATCH描述從已知節點找到發現節點的模式

(ee)用Person啟動模式(由WHERE限定)

- [:KNOWS] -匹配”KNOWS”關系(在任一方向)

(friends)將被綁定到Emil的朋友

匹配結果

推薦-使用模式

模式匹配可以用來提出建議,Johan正在學習沖浪,所以,他可能想找一個已經做過的新朋友。

MATCH (js:Person)-[:KNOWS]-()-[:KNOWS]-(surfer) WHERE js.name = "Johan" AND surfer.hobby = "surfing" RETURN DISTINCT surfer

()空圓括號忽略這些節點

DISTINCT,因為多于一個路徑將匹配該模式

沖浪者將包含Allison,他是朋友的朋友

結果

分析-使用視覺查詢計劃

通過預先提交EXPLAIN或PROFILE來了解您的查詢是如何工作的

PROFILE MATCH (js:Person)-[:KNOWS]-()-[:KNOWS]-(surfer)

WHERE js.name = "Johan" AND surfer.hobby = "surfing" RETURN DISTINCT surfer

運行結果

Live Cypher警告-實時識別查詢問題

在您鍵入時,查詢編輯器會通知您有關不推薦使用的功能和潛在的特殊查詢。

結果

以上是我為大家簡單介紹的Neo4j數據庫。

安利一個特別熱心的編程樂園群:624108656

超級熱心的群
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,923評論 6 535
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,740評論 3 420
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,856評論 0 380
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,175評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,931評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,321評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,383評論 3 443
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,533評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,082評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,891評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,067評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,618評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,319評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,732評論 0 27
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,987評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,794評論 3 394
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,076評論 2 375

推薦閱讀更多精彩內容

  • 1.Neo4j的Cypher語言是專門用于處理圖形數據的。 使用模式來描述圖形數據 熟悉SQL類的子句 說明性的,...
    松愛家的小秦閱讀 2,164評論 0 0
  • 1. 創建一個節點 CREATE 創建數據 () 表示節點 ee:Person,ee是變量名,Person是lab...
    時見疏星閱讀 9,465評論 0 6
  • 各位尊敬的評委,親愛的小伙伴們: 大家下午好!我是孔德月,我競選的職務是采編部部長。較之在座的各位,我是那么的普通...
    孔家月兒閱讀 621評論 0 7
  • R·閱讀原文片段 《適合比成功更重要》,143頁 自我激勵也是情商的關鍵因素之一。自我激勵意味著你是結果導向的人,...
    瑩雪_14d1閱讀 184評論 0 1
  • assembly是把一組文件、目錄、依賴元素組裝成一個歸檔文件. 比如, 假設一個 Maven project定義...
    浮x塵閱讀 1,960評論 0 1