開始
啓動neo4j數據庫:neo4j.bat console
使用csv文件創建圖數據庫
1、準備csv文件(使用爬蟲爬取數據)
1.1 ylq_star_nodes.csv (實體表)
1.2 ylq_star_relations.csv (關係表)
1.3 將兩個csv文件放到
neo4j-community-4.0.2\import 下
2、完成知識圖譜的構建
2.1
導入ylq_star_nodes.csv文件構建明星實體
LOAD CSV WITH HEADERS FROM 'file:///ylq_star_nodes.csv' AS data
CREATE (:star{starname:data.name, starid:data.id});
如果csv文件沒有表頭,可以改爲:
LOAD CSV FROM 'file:///ylq_star_nodes.csv' AS data
CREATE (:star{starname:data.name, starid:data.id});
2.2
導入ylq_star_relations生成明星實體之間的關係
LOAD CSV WITH HEADERS FROM "file:///ylq_star_relations.csv" AS relations
MATCH (entity1:star{starname:relations.subject}) , (entity2:star{starname:relations.object})
CREATE (entity1)-[:rel{relation: relations.relation}]->(entity2)
另一種寫法
LOAD CSV WITH HEADERS FROM "file:///ylq_star_relations.csv" AS relations
MATCH (entity1:star{starname:relations.subject}) , (entity2:star{starname:relations.object})
MERGE (entity1)-[:rel{relation: relations.relation}]->(entity2)
3、一些查詢
查詢張學友的全部關係
return (:star{starname:"張學友"})-->()
查某人朋友的朋友(5層關係)
match p=(n:star{starname:"張國榮"})-[*..5]->() return p limit 50;
# 查詢特定關係
match p=()-[:rel{relation:"舊愛"}]->() return p LIMIT 25;
不足之處: 構建好的關係圖譜中,實體之間的關係只能用rel來表示,如果想查看具體關係,需要點擊
關係查看關係屬性纔行。
一點疑問
本想使用關係表中的relation字段作爲關係名,但是當創建關係的時候關係名中不允許使用
relations.relation,報錯信息爲不允許使用.
LOAD CSV WITH HEADERS FROM "file:///ylq_star_relations.csv" AS relations
MATCH (entity1:star{starname:relations.subject}) , (entity2:star{starname:relations.object})
CREATE (entity1)-[:relations.relation}]->(entity2)
希望接下來能夠解決這個問題。