neo4j 從零開始

neo4j 從零開始

neo4j 簡介

http://www.durusau.net/localcopy/Graph-Modeling-Do.s-and-Don.ts.pdf
https://www.youtube.com/watch?v=78r0MgH0u0w
https://www.youtube.com/watch?v=AaJS-DGBQX4
https://www.youtube.com/watch?v=GekQqFZm7mA

開始

red hat 安裝 neo4j

https://neo4j.com/docs/operations-manual/current/installation/linux/rpm/

命令行啟動

neo4j console

建議用 root赂苗,screen 內(nèi)操作暇昂。一臺電腦同時只能打開一個 neo4j 數(shù)據(jù)庫怯伊。

遠程訪問 neo4j

利用端口轉(zhuǎn)發(fā)载萌,需要同時 tunnel 7474 端口(瀏覽器頁面)和 7687 端口(數(shù)據(jù)庫訪問)懂傀。

備份與讀取整個數(shù)據(jù)庫

無論備份 與 還原 都必須關(guān)閉Neo4j

neo4j-admin dump --database=graph.db --to=/backups/graph.db/2016-10-02.dump
neo4j-admin load --from=/backups/graph.db/2016-10-02.dump --database=graph.db --force

Browser 命令

進入 http://localhost:7474/browser/ 即可操作且警。
默認用戶名與密碼均為 neo4j荞胡,默認 server 為 bolt://localhost:7687

系統(tǒng)控制

:server change-password // 修改密碼
:server disconnect // 斷開連接
:sysinfo // 這里 ID Allocation 意味著這些點存在過茫经,不都現(xiàn)在還在

Cypher 語言入門操作

https://neo4j.com/developer/guide-neo4j-browser/

MATCH (n) RETURN n limit 1000 // 返回至多 1000 個點
:config initialNodeDisplay: 1000 // 圖中一次顯示 1000 個點(越大越慢)
MATCH (n) RETURN count(*) // 返回點的數(shù)目
MATCH (n)-[r]->() RETURN COUNT(r) // 返回邊的數(shù)目
// MATCH (n) DETACH DELETE n // 个扰!刪除圖中所有點瓷炮!

Cypher 進階

https://neo4j.com/docs/developer-manual/current/cypher/
https://gist.github.com/DaniSancas/1d5265fc159a95ff457b940fc5046887
https://neo4j.com/blog/query-cypher-data-relationships/
https://neo4j.com/blog/tuning-cypher-queries/

// 查看 name 為 12514_r 的 contig 類型節(jié)點的子節(jié)點,關(guān)系類型為 next递宅,關(guān)系的 property 中 link_num > 4. 限制返回至多 5 個 match
MATCH (n1:contig {name:"12514_r"})-[r:next]->(n2) where r.link_num>4 RETURN n1,n2 LIMIT 5
// 在以上基礎上再加一層
MATCH (n1:contig {name:"8111_r"})-[r1:next]->(n2)-[r2:next]->(n3) where r1.link_num > 5 and r2.link_num > 3 RETURN n1, n2, n3 limit 300

py2neo 使用樣例

http://py2neo.org/2.0/essentials.html
http://py2neo.org/v3/types.html

pip install py2neo
from py2neo import Graph, Node, Relationship, NodeSelector
link_graph = Graph( # 連接數(shù)據(jù)庫
    "http://localhost:7474", 
    username="neo4j", 
    password="neo4j"
)
selector = NodeSelector(link_graph) # 建立數(shù)據(jù)庫查詢器
# link_graph.delete_all() # 娘香!清空數(shù)據(jù)庫!

ctg1 = Node("contig", name="contig1_f") 
link_graph.create(ctg1) # 創(chuàng)建節(jié)點

ctg1 = selector.select("contig", name="contig1_f").first() # 選擇已有節(jié)點
ctg2 = Node("contig", name="contig2_f")
link_graph.create(ctg2)
# 邊的類型就是 link_num 的字符串表示办龄,這樣可以直接在 neo4j 圖中顯示烘绽,但好像難以進行 Cypher 操作
ctg1_ctg2 = Relationship(ctg1, str(parent_child_link), ctg2) 
# 或者邊的類型為 next,邊中含有更多信息俐填,可以用于 Cypher 分析
ctg1_ctg2 = Relationship(ctg1, "next", ctg2, link_num=10, gapsizes=100) 
link_graph.create(ctg1_ctg2) # 創(chuàng)建有向邊

注意

我們需要考慮 neo4j 是用來分析數(shù)據(jù)還是展示數(shù)據(jù)安接。
考慮到 Python 中 networkx 進行圖的表示已經(jīng)很不錯,我更傾向于將 neo4j 作為一個可視化的工具英融,而不是用它和 Cypher 代替 Python 進行數(shù)據(jù)分析盏檐。(也許經(jīng)過深入學習 Cypher 后,可以用 neo4j 處理數(shù)據(jù)驶悟,但現(xiàn)在直接用 Python 進行 DFS 這種圖算法更加簡單胡野。)

TODO

使用 neovis.js 顯示權(quán)重

https://github.com/neo4j-contrib/neovis.js
https://www.lyonwj.com/2016/06/26/graph-of-thrones-neo4j-social-network-analysis/
https://medium.com/neo4j/hands-on-graph-data-visualization-bd1f055a492d
https://medium.com/neo4j/graph-visualization-with-neo4j-using-neovis-js-a2ecaaa7c379
https://www.youtube.com/watch?v=0-1A7f8993M

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市痕鳍,隨后出現(xiàn)的幾起案子硫豆,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件熊响,死亡現(xiàn)場離奇詭異恭应,居然都是意外死亡,警方通過查閱死者的電腦和手機耘眨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進店門昼榛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人剔难,你說我怎么就攤上這事胆屿。” “怎么了偶宫?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵非迹,是天一觀的道長。 經(jīng)常有香客問我纯趋,道長憎兽,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任吵冒,我火速辦了婚禮纯命,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘痹栖。我一直安慰自己亿汞,他們只是感情好,可當我...
    茶點故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布揪阿。 她就那樣靜靜地躺著疗我,像睡著了一般。 火紅的嫁衣襯著肌膚如雪南捂。 梳的紋絲不亂的頭發(fā)上吴裤,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天,我揣著相機與錄音溺健,去河邊找鬼麦牺。 笑死,一個胖子當著我的面吹牛矿瘦,可吹牛的內(nèi)容都是我干的枕面。 我是一名探鬼主播,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼缚去,長吁一口氣:“原來是場噩夢啊……” “哼潮秘!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起易结,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤枕荞,失蹤者是張志新(化名)和其女友劉穎柜候,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體躏精,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡渣刷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了矗烛。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辅柴。...
    茶點故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖瞭吃,靈堂內(nèi)的尸體忽然破棺而出碌嘀,到底是詐尸還是另有隱情,我是刑警寧澤歪架,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布股冗,位于F島的核電站,受9級特大地震影響和蚪,放射性物質(zhì)發(fā)生泄漏止状。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一攒霹、第九天 我趴在偏房一處隱蔽的房頂上張望怯疤。 院中可真熱鬧,春花似錦剔蹋、人聲如沸旅薄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至洛口,卻和暖如春矫付,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背第焰。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工买优, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人挺举。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓杀赢,卻偏偏與公主長得像,于是被迫代替她去往敵國和親湘纵。 傳聞我的和親對象是個殘疾皇子脂崔,可洞房花燭夜當晚...
    茶點故事閱讀 44,955評論 2 355

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