•遍歷(Traversal):遍歷一張圖就是按照必定的規則,跟隨他們的關係,訪問關聯的的節點集合。最多的狀況是隻有一部分子圖被訪問到,由於你知道你對那一部分節點或者關係感興趣。
•Neo4j提供了遍歷的API,可讓你指定遍歷規則。最簡單的設置就是設置遍歷是寬度優先仍是深度優先。
•Traversal.preorderDepthFirst(): 深度優先,在訪問的子節點以前訪問每個節點。
•Traversal.postorderDepthFirst(): 深度優先,在訪問的子節點以後訪問每個節點。
•Traversal.preorderBreadthFirst(): 寬度優先,在訪問的子節點以前訪問每個節點。
•Traversal.postorderBreadthFirst(): 寬度優先,在訪問的子節點以後訪問每個節點。
•增長一個關係類型到遍歷的關係類型列表中。 默認狀況下,這個列表是空的,意味着默認會返回 全部類型 的關係,而不考慮類型。 若是有關係被加入到這個列表中,那就意味着 只有 列表中的關係纔會被遍歷。 有兩個方法,一個是包括方向,另一個是排除方向,這個方法中遍歷關係是雙向的。
•
經過引入一個正確的Java庫就能夠將Neo4j放入項目中,在選擇了適合你的平臺的版本後,經過引入jar包到你的應用中來完成嵌入Neo4j,在嵌入式的模式下,Neo4j能夠和應用程序運行於同一個進程,嵌入式的優勢:
一、低延遲,直接與數據庫對話,沒有網絡開銷。
二、任選API,能夠全範圍的訪問建立和查詢數據的API,包括Neo4j的核心API,遍歷框架和Cypher查詢語音
三、嵌入式模式提供了對命名索引的建立和管理的徹底控制。
嵌入式缺點:
一、僅能應用於JVM,Neo4j是基於JVM的數據庫,所以它的不少API僅能經過基於JVM的語音訪問。
二、GC的行爲,主機的應用程序垃圾回收器的行爲會對Neo4j產生影響,而且當嵌入式實例運行於HA集羣時,長期的GC暫停可能會使集羣協議觸發主節點重選
三、應用程序負責控制數據庫的生命週期,包括啓動和關閉。嵌入式版本的Neo4j和服務器版本的Neo4j同樣,也能夠作成集羣。也能夠將嵌入式和服務器版本的Neo4j作混合集羣。
Neo4j能夠做爲一個獨立服務器訪問,能夠直接經過一個REST接口或者一個基於指定語言的驅動。
一、REST API:服務器提供了REST API接口,容許客戶端經過http請求發送JSON格式的請求,響應包括JSON格式的消息響應。
二、平臺獨立性:因爲訪問是經過HTTP發送的JSON格式的文檔,所以Neo4j服務器能夠被運行於任何平臺的客戶端訪問。
三、Neo4J以服務器模式運行時,能夠獨立於應用服務器。
四、與應用程序的GC行爲隔離,服務器模式中,任何應用程序的不良GC行爲都不會影響Neo4j。
五、網絡開銷:在接收到第一個客戶端請求以後,TCP連接會保持開啓狀態,知道客戶端關閉。
六、每一個請求的事務:每一個客戶端的請求都在一個單獨的事務上下文中被執行。
七、開發者能夠本身擴展REST API,擴展采起JAX-RS註解類(annotated class)的形式。