Neo4j學習—一個“破冰行動”人物關(guān)系圖的簡單實現(xiàn)

一、環(huán)境搭建

本著一切從簡的原則(只怪虛擬機每次啟動太麻煩了)稠鼻,我選擇在本地搭建環(huán)境(win10+JDK8)Neo4j環(huán)境。

1) 獲取安裝包

官方地址:https://neo4j.com/download-center/#community

2)解壓文件

將文件解壓到本地環(huán)境中狂票,不建議解壓到C盤

3)添加環(huán)境變量

  • 添加環(huán)境變量NEO4J_HOME候齿,比如NEO4J_HOME = D:\Neo4j\neo4j-community-3.5.7,這里換成你的解壓目錄即可
  • path中添加%NEO4J_HOME%\bin;即可闺属,同JAVA_HOME的配置

4)啟動環(huán)境

a.命令行啟動

cmd中輸入neo4j.bat console命令即可打開neo4j慌盯,訪問http://localhost:7474出現(xiàn)neo4j頁面,那么祝賀你掂器,環(huán)境搭建成功亚皂!

b.添加系統(tǒng)服務(wù)

當然,我們可以直接將neo4j寫入系統(tǒng)服務(wù)国瓮,使用命令

  • neo4j install-service安裝服務(wù)
  • neo4j uninstall-service卸載服務(wù)
    此后灭必,我們就可以同其他服務(wù)一樣便捷啟動neo4j了
  • neo4j start 啟動
  • neo4j stop 停止
  • neo4j restart 重啟
  • neo4j status 查詢狀態(tài)

二、簡單語法

1)增加數(shù)據(jù)

  • 增加節(jié)點
CREATE (n:Person{name:'Jack',age:24})

表示添加一個屬性為{name:'Jack',age:24}的Person節(jié)點乃摹,別名為n禁漓,別名可以用于一組操作中的后續(xù)操作來引用此對象,比如添加節(jié)點之后查看該節(jié)點:

CREATE (n:Person{name:'',age:24}) return n;
  • 增加節(jié)點之間的關(guān)系
CREATE (Jack)-[:brother]->(Peter) 

表示創(chuàng)建Jack和Peter之間的關(guān)系brother孵睬,注意播歼,這里創(chuàng)建關(guān)系使用的是別名,并且該操作是跟在其他操作之后的掰读。否則默認將創(chuàng)建兩個空節(jié)點秘狞。

2)查詢數(shù)據(jù)

  • 查詢節(jié)點
MATCH (a:Person{name:'Jack'}) return a

查詢屬性{name:'Jack'}的Person節(jié)點

3)刪除數(shù)據(jù)

  • 刪除某個節(jié)點
MATCH (a:Person{name:'Jack'}) delete a

刪除數(shù)據(jù)是先查詢該數(shù)據(jù)叭莫,在執(zhí)行刪除操作。

4)修改數(shù)據(jù)

  • 修改節(jié)點
MATCH (a:Person{name:'Jack'}) set a.name = 'Tom'

修改數(shù)據(jù)同樣先查詢數(shù)據(jù)烁试,再將需要的屬性進行設(shè)置

三雇初、構(gòu)建人物關(guān)系圖

基本節(jié)點的增刪改查操作學會了,我們就實現(xiàn)一個簡單的人物關(guān)系圖廓潜,使用的數(shù)據(jù)是最近特別火的電視劇——破冰行動抵皱。
輸入以下代碼:

create ( lwm: Person {name:'李維民',job:'Police',TVplay:'破冰行動'})
create ( myb: Person {name:'馬云波',job:'Police',TVplay:'破冰行動'})
create ( zhjl: Person {name:'趙嘉良',job:'Police',TVplay:'破冰行動'})
create ( mw: Person {name:'馬雯',job:'Police',TVplay:'破冰行動'})
create ( lf: Person {name:'李飛',job:'Police',TVplay:'破冰行動'})
create ( cyq: Person {name:'蔡永強',job:'Police',TVplay:'破冰行動'})
create ( chgr: Person {name:'陳光榮',job:'Police',TVplay:'破冰行動'})
create ( chwz: Person {name:'陳文澤',job:'Mayor',TVplay:'破冰行動'})
create ( lyd: Person {name:'林耀東',job:'Dealer',TVplay:'破冰行動'})
create ( lyh: Person {name:'林耀華',job:'Dealer',TVplay:'破冰行動'})
create ( lzh: Person {name:'林宗輝',job:'Dealer',TVplay:'破冰行動'})
create ( lshwen: Person {name:'林勝文',job:'Dealer',TVplay:'破冰行動'})
create ( lshwu: Person {name:'林勝武',job:'Dealer',TVplay:'破冰行動'})
create ( cj: Person {name:'蔡軍',job:'Police',TVplay:'破冰行動'})
create ( sy: Person {name:'宋楊',job:'Police',TVplay:'破冰行動'})
create ( lshb: Person {name:'林水伯',job:'Teacher',TVplay:'破冰行動'})  
create ( chk: Person {name:'陳軻',job:'Nurse',TVplay:'破冰行動'})

create 
    ( lwm)-[:師父]->(myb),
    ( lwm)-[:養(yǎng)父]->(lf),
    ( lwm)-[:上級]->(mw),
    ( zhjl)-[:線人]->(lwm),
    ( myb)-[:生死之交]->(lf),
    ( myb)-[:上級]->(chgr),
    ( myb)-[:上級]->(cyq),
    ( chwz)-[:哥哥]->(chgr),
    ( chwz)-[:保護傘]->(lyd),
    ( chgr)-[:同事]->(cyq),
    ( chgr)-[:上級]->(cj),
    ( chgr)-[:勾結(jié)]->(lyd),
    ( lyd)-[:兄弟]->(lyh),
    ( lyd)-[:堂兄弟]->(lzh),
    ( lyh)-[:堂兄弟]->(lzh),
    ( cyq)-[:上級]->(lf),
    ( lf)-[:同學]->(cj),
    ( lf)-[:同事]->(sy),
    ( lf)-[:朋友]->(chk),
    ( lshb)-[:老師]->(lf),
    ( mw)-[:保護]->(lf),
    ( zhjl)-[:生父]->(lf),
    ( chk)-[:前任女友]->(sy),
    ( sy)-[:同學]->(cj),
    ( lzh)-[:岳父]->(cj),
    ( lzh)-[:叔侄]->(lshwen),
    ( lzh)-[:叔侄]->(lshwu),
    ( lshwen)-[:兄弟]->(lshwu)

說明:

  • 前面節(jié)點創(chuàng)建部分每一行都使用create關(guān)鍵字。每行之間不添加任何符號辩蛋,相當于多條命令呻畸。而后面關(guān)系創(chuàng)建過程中,使用一個create關(guān)鍵字悼院,每行之間使用,隔開书释,相當于一行命令
  • 因為關(guān)系的創(chuàng)建使用的是節(jié)點的別名庄新,因此所有的代碼必須一同執(zhí)行裙盾,否則創(chuàng)建關(guān)系的時候會生成默認節(jié)點朱巨,與之前的節(jié)點無關(guān)。

效果展示

  • neo4j瀏覽器界面的展示效果
  • 點擊上圖導出按鈕颖医,可以將關(guān)系圖導出為不同格式位衩,下圖導出格式為SVG,使用瀏覽器打開

結(jié)語

萬事開頭難熔萧,一個小小的實現(xiàn)糖驴,便可打開知識的大門,不至于被其他繁瑣的東西令我們望而卻步佛致。筆者剛開始接觸neo4j贮缕,以此記錄學習過程,望與諸君共勉俺榆。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末感昼,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子罐脊,更是在濱河造成了極大的恐慌定嗓,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,888評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件爹殊,死亡現(xiàn)場離奇詭異蜕乡,居然都是意外死亡,警方通過查閱死者的電腦和手機梗夸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來号醉,“玉大人反症,你說我怎么就攤上這事辛块。” “怎么了铅碍?”我有些...
    開封第一講書人閱讀 168,386評論 0 360
  • 文/不壞的土叔 我叫張陵润绵,是天一觀的道長。 經(jīng)常有香客問我胞谈,道長尘盼,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,726評論 1 297
  • 正文 為了忘掉前任烦绳,我火速辦了婚禮卿捎,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘径密。我一直安慰自己午阵,他們只是感情好,可當我...
    茶點故事閱讀 68,729評論 6 397
  • 文/花漫 我一把揭開白布享扔。 她就那樣靜靜地躺著底桂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪惧眠。 梳的紋絲不亂的頭發(fā)上籽懦,一...
    開封第一講書人閱讀 52,337評論 1 310
  • 那天,我揣著相機與錄音氛魁,去河邊找鬼暮顺。 笑死,一個胖子當著我的面吹牛呆盖,可吹牛的內(nèi)容都是我干的拖云。 我是一名探鬼主播,決...
    沈念sama閱讀 40,902評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼应又,長吁一口氣:“原來是場噩夢啊……” “哼宙项!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起株扛,我...
    開封第一講書人閱讀 39,807評論 0 276
  • 序言:老撾萬榮一對情侶失蹤尤筐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后洞就,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體盆繁,經(jīng)...
    沈念sama閱讀 46,349評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,439評論 3 340
  • 正文 我和宋清朗相戀三年旬蟋,在試婚紗的時候發(fā)現(xiàn)自己被綠了油昂。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,567評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖冕碟,靈堂內(nèi)的尸體忽然破棺而出拦惋,到底是詐尸還是另有隱情,我是刑警寧澤安寺,帶...
    沈念sama閱讀 36,242評論 5 350
  • 正文 年R本政府宣布厕妖,位于F島的核電站,受9級特大地震影響挑庶,放射性物質(zhì)發(fā)生泄漏言秸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,933評論 3 334
  • 文/蒙蒙 一迎捺、第九天 我趴在偏房一處隱蔽的房頂上張望举畸。 院中可真熱鬧,春花似錦破加、人聲如沸俱恶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽合是。三九已至,卻和暖如春锭环,著一層夾襖步出監(jiān)牢的瞬間聪全,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評論 1 272
  • 我被黑心中介騙來泰國打工辅辩, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留难礼,地道東北人。 一個月前我還...
    沈念sama閱讀 48,995評論 3 377
  • 正文 我出身青樓玫锋,卻偏偏與公主長得像蛾茉,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子撩鹿,可洞房花燭夜當晚...
    茶點故事閱讀 45,585評論 2 359

推薦閱讀更多精彩內(nèi)容