新聞中心
本文我們將分別從什么是neo4j、neo4j作用和neo4j用法幾個方面來簡單介紹圖數據庫neo4j的知識,希望能夠給您帶來收獲。

公司主營業(yè)務:成都網站制作、成都網站建設、外貿營銷網站建設、移動網站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現互聯網宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯推出山城免費做網站回饋大家。
1、什么是neo4j
neo4j是一種圖數據庫,同時它也是一種嵌入式數據庫。它對圖數據是以節(jié)點和邊(關系)模式進行存儲。每個節(jié)點可以包含一系列信息,通過Node類里面的setProperty()方法對節(jié)點信息進行存儲,Node也可以使用createRelationshipTo()方法實現個節(jié)點和其他節(jié)點的聯系,并且該方法返回的是一個Relationship對象,我們也可以對Relationship設置屬性,也就是節(jié)點和節(jié)點之間的關系屬性。什么叫關系屬性?例如:person1àperson2,person1和person2的關系可以是朋友也可以是同學還可以是親人,這里的朋友、同學、親人就是這里的Relationship的屬性。那么關系屬性就是描敘兩個節(jié)點之間的關系類型。這就方便在對節(jié)點進行查找的時候對節(jié)點進行過濾。如下圖:
2、neo4j作用
上面對neo4j進行了簡單的介紹,可知neo4j是一種對圖數據進行存儲,是一種嵌入式數據庫。它可以將復雜的圖數據以節(jié)點和邊形式存儲。例如:在我們現實社會中人與人之間的關系,這就是一個復雜的圖,朋友也可以是多種多樣的,怎樣描敘這樣復雜的圖呢?Neo4j提供了比較簡單的描敘方式。如圖:
就上面的圖可以根據neo4j提供的方法獲取***層朋友和第二層朋友: TraversalDescriptiontd = Traversal.description().breadthFirst().relationships(RelTypes.KNOWS, Direction.OUTGOING).filter(Traversal.returnAllButStartNode() ); 上面的代碼所執(zhí)行的是:同個一個事務獲取一個事務描敘,然后根據這個事務描敘在一存儲的圖中過濾出我們想要的節(jié)點,這個事務描敘***個是進行廣度優(yōu)先搜索(breadthFirst),接下類對節(jié)點關系進行過濾。Direction是指定關系的方向,RelTypes就是關系的類型。這樣就可以獲得相應的結果。
3、neo4j用法簡單介紹
此處就neo4j的一個例子進行講解(如圖):
上面圖是一個部門結構圖,這個在我們現實生活中也是比較常見的。如:我們學校,它就是一個由各個部門構成的。如何對這種圖進行查找,以獲得我們想要的信息呢?
1)、獲得各個部門的名:
- TraversalDescription td =Traversal.description().breadthFirst().relationships(RoleRels.ROOT, Direction.INCOMING).relationships(RoleRels.PART_OF, Direction.INCOMING).filter(Traversal.returnAllButStartNode());
2)、獲得所有的admin
- TraversalDescription td =Traversal.description().breadthFirst().relationships(RoleRels.PART_OF, Direction.INCOMING).relationships(RoleRels.MEMBER_OF, Direction.INCOMING).filter(Traversal.returnAllButStartNode() );
3)、更具個人信息獲得他所在的所有部門
- Node jale = getUserByName( "Jale" );
- TraversalDescription td = Traversal.description().depthFirst().relationships(RoleRels.MEMBER_OF, Direction.OUTGOING).relationships(RoleRels.PART_OF, Direction.OUTGOING).filter(Traversal.returnAllButStartNode() );
附錄:
neo4j還提供了兩種遍歷的方式:一種是深度搜索,第二種是廣度搜索。也提供了兩種搜索算法,一種是A*算法,第二種是dijkstra算法。提高了編程人員的工作效率。同時neo4j也有簡歷索引的功能,方便了多節(jié)點的查找。
關于neo4j圖數據庫的知識就介紹到這里,希望能夠帶給您收獲,謝謝!
【編輯推薦】
- 通過SDE服務直連Oracle數據庫的配置
- 一些很實用的Oracle數據庫優(yōu)化策略總結篇
- Java和Ibatis調用存儲過程并取得返回值詳解
- Oracle、MySQL和PostgreSQL的比較與選擇
- 一個系統(tǒng)崩潰造成Oracle數據庫無法啟動的恢復實例
新聞名稱:圖數據庫初探之neo4j的簡單應用
本文URL:http://m.5511xx.com/article/cociphe.html


咨詢
建站咨詢
