圖數(shù)據(jù)庫很火啊,所以花了點(diǎn)時(shí)間看看摘能。
我看的是neo4j,嘗試著用python鏈接操作即寡,記錄一下操作徊哑,由于是自己裝著玩,就在window10上搞了一個(gè)聪富。
NEO4J安裝和使用
neo4j下載地址:https://neo4j.com/download-center/ 莺丑,我下載的是下圖這個(gè)版本
下載后解壓到自己習(xí)慣安裝的目錄,接下來就是配置了墩蔓,配置之前要確認(rèn)是否安裝了java的運(yùn)行環(huán)境梢莽,neo4j要求是java 11以上,但最新的java 16不能用奸披,需要注意一下昏名。
配置主要是配置環(huán)境變量,增加NEO4J_HOME變量阵面,指定到剛才解壓的目錄轻局,在Path中增加運(yùn)行目錄,見下兩圖样刷。
這樣就完成了配置仑扑,通過neo4j console 命令可以驗(yàn)證是否配置好了,見下圖
首次使用該命令會(huì)提示沒有安裝neo4j service置鼻, 使用了neo4j service_install 命令安裝一下
完成后重新啟動(dòng)neo4j就可以使用了
在瀏覽器中打開 http://localhost:7474/ (默認(rèn)路徑)镇饮,需要先登錄,默認(rèn)的用戶名和密碼都是neo4j箕母,登錄后會(huì)要求你改密碼储藐,登錄后就可以看到以下界面俱济,使用Cypher語法就可以操作數(shù)據(jù)庫了。
python鏈接neo4j
我找到的是py2neo钙勃,安裝后可以鏈接并操作蛛碌,還是比較容易
安裝命令 pip install py2neo
完成安裝可以直接使用,官網(wǎng)的操作手冊是 https://py2neo.org/v4/index.html
下面是一段實(shí)例肺缕,也是看到別人寫的左医,拿來
from?py2neo?import?Node,?Graph,?Relationship,NodeMatcher,data
graph?=?Graph("http://localhost:7474/browser/",auth=("neo4j",?"123456"))
print('graph?連接成功,開始清庫')graph.delete_all()
#?創(chuàng)建結(jié)點(diǎn)
test_node_1?=?Node('ru_yi_zhuan',?name='皇帝')?
#?修改的部分
test_node_2?=?Node('ru_yi_zhuan',?name='皇后')?
#?修改的部分
test_node_3?=?Node('ru_yi_zhuan',?name='公主')
?#?修改的部分??
graph.create(test_node_1)
graph.create(test_node_2)
graph.create(test_node_3)?
#?創(chuàng)建關(guān)系
#?分別建立了test_node_1指向test_node_2和test_node_2指向test_node_1兩條關(guān)系同木,關(guān)系的類型為"丈夫浮梢、妻子",兩條關(guān)系都有屬性count彤路,且值為1秕硝。
node_1_zhangfu_node_1?=?Relationship(test_node_1,?'丈夫',?test_node_2)
node_1_zhangfu_node_1['count']?=?1
node_2_qizi_node_1?=?Relationship(test_node_2,?'妻子',?test_node_1)
node_2_munv_node_1?=?Relationship(test_node_2,?'母女',?test_node_3)?
node_2_qizi_node_1['count']?=?1?
graph.create(node_1_zhangfu_node_1)
graph.create(node_2_qizi_node_1)
graph.create(node_2_munv_node_1)?
print(graph)print(test_node_1)
print(test_node_2)
print(node_1_zhangfu_node_1)
print(node_2_qizi_node_1)
print(node_2_munv_node_1)
#使用run查詢,之前看到有使用dada方式直接獲取的洲尊,但是驗(yàn)證了不能用远豺,可能是版本問題
test_node_1?=?graph.run("MATCH(p:ru_yi_zhuan{name:'皇帝'})??return?p").data()
print(test_node_1)