日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
圖數(shù)據(jù)庫(kù)初探之neo4j的簡(jiǎn)單應(yīng)用

本文我們將分別從什么是neo4j、neo4j作用和neo4j用法幾個(gè)方面來(lái)簡(jiǎn)單介紹圖數(shù)據(jù)庫(kù)neo4j的知識(shí),希望能夠給您帶來(lái)收獲。

公司主營(yíng)業(yè)務(wù):成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。創(chuàng)新互聯(lián)推出山城免費(fèi)做網(wǎng)站回饋大家。

1、什么是neo4j

neo4j是一種圖數(shù)據(jù)庫(kù),同時(shí)它也是一種嵌入式數(shù)據(jù)庫(kù)。它對(duì)圖數(shù)據(jù)是以節(jié)點(diǎn)和邊(關(guān)系)模式進(jìn)行存儲(chǔ)。每個(gè)節(jié)點(diǎn)可以包含一系列信息,通過Node類里面的setProperty()方法對(duì)節(jié)點(diǎn)信息進(jìn)行存儲(chǔ),Node也可以使用createRelationshipTo()方法實(shí)現(xiàn)個(gè)節(jié)點(diǎn)和其他節(jié)點(diǎn)的聯(lián)系,并且該方法返回的是一個(gè)Relationship對(duì)象,我們也可以對(duì)Relationship設(shè)置屬性,也就是節(jié)點(diǎn)和節(jié)點(diǎn)之間的關(guān)系屬性。什么叫關(guān)系屬性?例如:person1àperson2,person1和person2的關(guān)系可以是朋友也可以是同學(xué)還可以是親人,這里的朋友、同學(xué)、親人就是這里的Relationship的屬性。那么關(guān)系屬性就是描敘兩個(gè)節(jié)點(diǎn)之間的關(guān)系類型。這就方便在對(duì)節(jié)點(diǎn)進(jìn)行查找的時(shí)候?qū)?jié)點(diǎn)進(jìn)行過濾。如下圖:

2、neo4j作用

上面對(duì)neo4j進(jìn)行了簡(jiǎn)單的介紹,可知neo4j是一種對(duì)圖數(shù)據(jù)進(jìn)行存儲(chǔ),是一種嵌入式數(shù)據(jù)庫(kù)。它可以將復(fù)雜的圖數(shù)據(jù)以節(jié)點(diǎn)和邊形式存儲(chǔ)。例如:在我們現(xiàn)實(shí)社會(huì)中人與人之間的關(guān)系,這就是一個(gè)復(fù)雜的圖,朋友也可以是多種多樣的,怎樣描敘這樣復(fù)雜的圖呢?Neo4j提供了比較簡(jiǎn)單的描敘方式。如圖:

就上面的圖可以根據(jù)neo4j提供的方法獲取***層朋友和第二層朋友:   TraversalDescriptiontd = Traversal.description().breadthFirst().relationships(RelTypes.KNOWS, Direction.OUTGOING).filter(Traversal.returnAllButStartNode() );    上面的代碼所執(zhí)行的是:同個(gè)一個(gè)事務(wù)獲取一個(gè)事務(wù)描敘,然后根據(jù)這個(gè)事務(wù)描敘在一存儲(chǔ)的圖中過濾出我們想要的節(jié)點(diǎn),這個(gè)事務(wù)描敘***個(gè)是進(jìn)行廣度優(yōu)先搜索(breadthFirst),接下類對(duì)節(jié)點(diǎn)關(guān)系進(jìn)行過濾。Direction是指定關(guān)系的方向,RelTypes就是關(guān)系的類型。這樣就可以獲得相應(yīng)的結(jié)果。

3、neo4j用法簡(jiǎn)單介紹

此處就neo4j的一個(gè)例子進(jìn)行講解(如圖):

上面圖是一個(gè)部門結(jié)構(gòu)圖,這個(gè)在我們現(xiàn)實(shí)生活中也是比較常見的。如:我們學(xué)校,它就是一個(gè)由各個(gè)部門構(gòu)成的。如何對(duì)這種圖進(jìn)行查找,以獲得我們想要的信息呢?

1)、獲得各個(gè)部門的名:

 
 
 
 
  1. TraversalDescription td =Traversal.description().breadthFirst().relationships(RoleRels.ROOT, Direction.INCOMING).relationships(RoleRels.PART_OF, Direction.INCOMING).filter(Traversal.returnAllButStartNode()); 

2)、獲得所有的admin

 
 
 
 
  1. TraversalDescription td =Traversal.description().breadthFirst().relationships(RoleRels.PART_OF, Direction.INCOMING).relationships(RoleRels.MEMBER_OF, Direction.INCOMING).filter(Traversal.returnAllButStartNode() ); 

3)、更具個(gè)人信息獲得他所在的所有部門

 
 
 
 
  1. Node jale = getUserByName( "Jale" );  
  2.  
  3. TraversalDescription td = Traversal.description().depthFirst().relationships(RoleRels.MEMBER_OF, Direction.OUTGOING).relationships(RoleRels.PART_OF, Direction.OUTGOING).filter(Traversal.returnAllButStartNode() ); 

附錄:

neo4j還提供了兩種遍歷的方式:一種是深度搜索,第二種是廣度搜索。也提供了兩種搜索算法,一種是A*算法,第二種是dijkstra算法。提高了編程人員的工作效率。同時(shí)neo4j也有簡(jiǎn)歷索引的功能,方便了多節(jié)點(diǎn)的查找。

關(guān)于neo4j圖數(shù)據(jù)庫(kù)的知識(shí)就介紹到這里,希望能夠帶給您收獲,謝謝!

【編輯推薦】

  1. 通過SDE服務(wù)直連Oracle數(shù)據(jù)庫(kù)的配置
  2. 一些很實(shí)用的Oracle數(shù)據(jù)庫(kù)優(yōu)化策略總結(jié)篇
  3. Java和Ibatis調(diào)用存儲(chǔ)過程并取得返回值詳解
  4. Oracle、MySQL和PostgreSQL的比較與選擇
  5. 一個(gè)系統(tǒng)崩潰造成Oracle數(shù)據(jù)庫(kù)無(wú)法啟動(dòng)的恢復(fù)實(shí)例

本文題目:圖數(shù)據(jù)庫(kù)初探之neo4j的簡(jiǎn)單應(yīng)用
鏈接分享:http://www.dlmjj.cn/article/cociphe.html