圖形數據庫之Neo4j學習(一)

image

最近工做須要使用圖形數據庫來構建知識圖譜,目前基於Java使用最普遍的有兩個開源框架html

(1) neo4j前端

社區版 免費html5

企業版 收費java

(2) Titanlinux

全開源android

咱們這次選擇了neo4j的社區版,主要是項目緊,neo4j比較穩定,Titan可能比較新,雖然Titan確定是將來的主流,我我的是看好Titan的,Neo4j無法存儲巨大的一張關係圖 ,由於他不支持分片,而Titan是天生分佈式的,能夠構建在Hbase,Cassandra之上外加+ES或者Solr存儲索引,很是強大,再此不在過多 對比兩個圖形數據庫的優缺點,後面有機會再來專門寫文章敘述。ios

什麼是圖形數據庫?

圖形數據庫(Graph Database)是利用計算機將點、線、畫霹圖形基本元素按必定數據結同造型存儲的數據集合。數據庫

最先應該使用在社交場景,好比QQ的幾度空間關係圖,除了社交應用以外,圖數據庫同不少應用能夠工做。不少應用能夠天然擴展使用圖形類型的關係。好比,好多內嵌在社交應用中的推薦系統經常都是基於圖形的系統。圖數據庫由一系列結點和邊界組成;每個結點表明了一個實體,每個邊界表明了兩個結點之間的一種鏈接或者關係。swift

Neo4j的安裝

本次方便快速開發測試,安裝平臺是在Windows上。c#

下載地址: https://neo4j.com/download/community-edition/

選擇版本下載 image

下載後,解壓到某個盤符下面,我這裏用的最新的的版本,須要JDK8支持,這一點須要注意下 ,JDK8我已經安裝,下載解壓後,須要先配置Neo4j的環境變量:

NEO4J_HOME = E:\2016\neo4j-community-3.0.6
而後PATH裏面加入:%NEO4J_HOME%\bin

若是是Liunx:
 
NEO4J_HOME=/home/search/neo4j 
export CLASSPATH=$CLASSPATH:NEO4J_HOME/lib
export PATH=$PATH:$NEO4J_HOME/bin

打開cmd窗口後,切到neo4j根目錄,執行:

neo4j.bat會給出下面的幾個參數提示

start
stop
console
restart
status
install-service
uninstall-service
Verbose

而後咱們執行

neo4j.bat console

以控制檯方式啓動,方便調試開發

啓動以後,在瀏覽器訪問http://localhost:7474

默認的用戶名和密碼是neo4j neo4j 登陸以後須要修改 image

在頁面最上面的cypher的執行器裏面,插入一些數據:

CREATE 
 (p1:Person {name:'胡興炯', born:1991, interest:'mac,ios,旅遊', goodat:'java,swift,objectiveC'}),
 (p2:Person {name:'張勇', born:1990,  interest:'android', goodat:'java,android'}),
 (p3:Person {name:'成文龍', born:1990, interest:'linux,hadoop', goodat:'linux,java,android'}),
 (p4:Person {name:'王昕', born:1978, interest:'wpf,noSQL,旅遊', goodat:'java,c#'}),
 (p5:Person {name:'周開琪', born:1977 , interest:'管理', goodat:'管理,'}),
 (p6:Person {name:'徐錦亮', born:1985,  interest:'前端', goodat:'前端,html5,hadoop'}),
 (p6:Person {name:'張三', born:1993,  interest:'大數據', goodat:'hadoop,html5,java,lucene,elasticsearch,solr'}),
 (p8:Person {name:'徐輝霞', born:1990,  interest:'管理,旅遊', goodat:'管理,採購'}),
 (p9:Person {name:'黃廷鵬', born:1992,  interest:'OA', goodat:'java'}),
 (p10:Person {name:'史樂樂', born:1991,  interest:'OA,旅遊', goodat:'管理'}),
 (p1)-[:認識]->(p2),
 (p1)-[:認識]->(p3),
 (p1)-[:認識]->(p4),
 (p1)-[:認識]->(p5),
 (p1)-[:認識]->(p9),
 (p2)-[:認識]->(p1),
 (p2)-[:認識]->(p3),
 (p2)-[:認識]->(p4),
 (p2)-[:認識]->(p5),
 (p2)-[:認識]->(p9),
 (p3)-[:認識]->(p1),
 (p3)-[:認識]->(p2),
 (p3)-[:認識]->(p4),
 (p3)-[:認識]->(p5),
 (p3)-[:認識]->(p7),
 (p4)-[:認識]->(p1),
 (p4)-[:認識]->(p2),
 (p4)-[:認識]->(p3),
 (p4)-[:認識]->(p5),
 (p4)-[:認識]->(p9),
 (p5)-[:認識]->(p1),
 (p5)-[:認識]->(p2),
 (p5)-[:認識]->(p3),
 (p5)-[:認識]->(p4),
 (p5)-[:認識]->(p6),
 (p5)-[:認識]->(p8),
 (p5)-[:管理]->(p1),
 (p5)-[:管理]->(p2),
 (p5)-[:管理]->(p3),
 (p5)-[:管理]->(p4),
 (p5)-[:管理]->(p6),
 (p6)-[:認識]->(p5),
 (p6)-[:認識]->(p4),
 (p6)-[:夫妻]->(p8),
 (p9)-[:認識]->(p1),
 (p9)-[:認識]->(p2),
 (p9)-[:認識]->(p3),
 (p9)-[:認識]->(p10),
 (p9)-[:喜歡]->(p10),
 (p10)-[:認識]->(p9),
 (p10)-[:同事]->(p7)

而後查看關係圖以下: image

至此,已經入門了,後面會記錄neo4j的概念,配置,cyper查詢語法,以及neo4j的java集成使用 , jdbc使用等等

有什麼問題能夠掃碼關注微信公衆號:我是攻城師(woshigcs),在後臺留言諮詢。 技術債不能欠,健康債更不能欠, 求道之路,與君同行。

輸入圖片說明

相關文章
相關標籤/搜索