
掃描右側圖片或微信搜索 “ Java技術分享屋 ” ,回復 “ 驗證碼 ” ,獲取驗證密碼。
本資料僅供讀者預覽及學習交流使用,不能用于商業(yè)用途,請在下載后24小時內刪除。如果喜歡,請購買正版!
一.資料圖片
二.資料簡介
本書以實例為依托,詳細地對實例做建模分析,并給出經過測試的源代碼,讀者可以按照書的介紹一步一步地實現(xiàn)每一個實例,這是一種學習建模和編程的極為便捷的方法。本書也是一本對使用Neo4j對圖形數據進行設計、建模和查詢的綜合指導書。書中探索了處理和查詢圖形數據的各種工具及其強大功能,包括圖形遍歷的概念及其使用方法,也討論了Neo4j的圖形查詢語言Cypher和如何使用SpringDataNeo4j將Neo4j集成到應用程序中,以及如何使用服務器模式和嵌入式模式等內容。
三.作者簡介
About the AuthorAleksa Vukotic,之前在Open Credo擔任數據管理實踐領導者,現(xiàn)任Noble Group的開發(fā)平臺部主管。他是一個軟件架構師和開發(fā)者、敏捷編程的倡導者、作者和培訓師,并且是許多Neo4j項目的開發(fā)者,如用圖形數據模型解決復雜的訪問控制列表和推薦引擎問題。
Nicki Watt,是Open Credo的顧問。她務實、心靈手巧,是一個問題解決專家,樂于使用“正確的工具完成工作”。Nicki一直使用Neo4j等開源工具以及框架參與各種項目,包括對基于引擎問題的探究和推薦。她也是Spring Data Neo4j項目的貢獻者之一。
Tareq Abedrabbo,是Open Credo的技術官(CTO)。他對編程語言有著強烈的興趣,從Scala和Python到Google Go。他在幾個NoSQL技術領域(包括Neo4j、MongoDB和Redis)有著非常豐富的知識,并在很早以前就開始積極從事Spring項目,是Spring Web Service項目的核心成員。
Dominic Fox,是Open Credo的顧問,尤其喜歡把對編程語言理論的見解進行實踐并講解給他人。他作為專業(yè)開發(fā)者涉足了多種領域的工作,包括文檔管理、電信和金融,也包括Neo4j的培訓。他一直期望創(chuàng)建優(yōu)秀的工具和庫,能使每天的編程工作更加直觀、可靠。
Jonas Partner,是Open Credo的執(zhí)行官(CEO),該公司是Neo Technology的服務合作伙伴,是解決復雜數據問題的專業(yè)公司。他還是《Spring Integration in Action》的合作作者。
四.資料目錄
譯者序
序 言
前 言
作者簡介
第一部分 Neo4j概述
第1章 Neo4j數據庫的一個應用案例 3
1.1 為什么要有Neo4j 4
1.2 關系數據庫中的圖形數據 4
1.3 Neo4j中的圖形數據 8
1.4 大數據下的SQL聯(lián)接操作與Neo4j圖形遍歷的對比 10
1.5 圖形 13
1.6 Neo4j在NoSQL領域的地位 13
1.6.1 主鍵值存儲 14
1.6.2 列族存儲 14
1.6.3 面向文檔的數據庫 15
1.6.4 圖形數據庫 15
1.6.5 與NoSQL類數據庫的比較 15
1.7 Neo4j具有與ACID兼容的數據格式 16
1.8 本章小結 17
第2章 Neo4j的數據模型 18
2.1 Neo4j中數據模型的類型 18
2.1.1 圖表建模的一個簡單實例 19
2.1.2 圖表建模的一個復雜實例 20
2.2 領域建模 22
2.3 更多實例 26
2.3.1 地鐵車站實例 26
2.3.2 樂隊成員實例 27
2.4 本章小結 29
第3章 Neo4j開發(fā)入門 30
3.1 圖形數據結構建模 30
3.2 使用Neo4j API 34
3.2.1 創(chuàng)建節(jié)點 34
3.2.2 創(chuàng)建關系 36
3.2.3 為節(jié)點添加屬性 38
3.2.4 節(jié)點類型策略 40
3.2.5 為關系添加屬性 41
3.3 節(jié)點標簽 43
3.4 本章小結 46
第4章 強大的圖形遍歷功能 47
4.1 使用Neo4j核心Java API進行遍歷 47
4.1.1 尋找起始節(jié)點 48
4.1.2 遍歷直接關系 49
4.1.3 遍歷深度為2的關系 51
4.1.4 內存使用注意事項 53
4.2 使用Neo4j的遍歷API進行遍歷 55
4.2.1 使用Neo4j的內置遍歷結構 55
4.2.2 實現(xiàn)一個自定義評估函數 56
4.3 本章小結 59
第5章 數據索引 60
5.1 創(chuàng)建索引項 60
5.2 通過郵箱地址查找用戶 62
5.3 對多個匹配結果的處理 64
5.4 對索引過的數據進行修改的處理 65
5.5 自動索引 66
5.5.1 模式索引 66
5.5.2 自動索引 69
5.6 索引的成本/效益權衡 70
5.6.1 索引查詢的性能優(yōu)勢 71
5.6.2 當更新和插入數據時索引對性能的影響 72
5.6.3 索引的存儲 73
5.7 本章小結 73
第二部分 Neo4j應用開發(fā)
第6章 Neo4j的查詢語言Cypher 77
6.1 Cypher簡介 77
6.1.1 Cypher入門 78
6.1.2 執(zhí)行Cypher查詢 79
6.2 Cypher的基本句法 85
6.2.1 模式匹配 85
6.2.2 查找起始節(jié)點 89
6.2.3 過濾數據 92
6.2.4 獲得結果 93
6.3 用Cypher更新圖形數據 96
6.3.1 創(chuàng)建新圖形實體 97
6.3.2 刪除數據 99
6.3.3 更新節(jié)點和關系屬性 99
6.4 高級Cypher 100
6.4.1 聚合 100
6.4.2 函數 101
6.4.3 with語句的管道功能 103
6.4.4 Cypher的兼容性 104
6.5 本章小結 104
第7章 事務 105
7.1 事務的基礎知識 105
7.1.1 添加事務 107
7.1.2 打好基礎,循序漸進 108
7.2 事務的高級功能 109
7.2.1 事務的語義 109
7.2.2 事務中的讀取與顯式讀鎖 111
7.2.3 事務中的寫入與顯式寫鎖 112
7.2.4 無效鎖的危害 114
7.3 與其他事務管理系統(tǒng)的集成 114
7.4 事務事件 116
7.5 本章小結 117
第8章 深度遍歷 118
8.1 遍歷的順序 118
8.1.1 深度優(yōu)先 119
8.1.2 廣度優(yōu)先 121
8.1.3 深度優(yōu)先與廣度優(yōu)先順序的比較 122
8.2 擴展關系 124
8.2.1 標準擴展器 124
8.2.2 用于擴展的順序關系 126
8.2.3 自定義擴展器 127
8.3 管理唯一性 130
8.3.1 NODE_GLOBAL唯一性 130
8.3.2 NODE_PATH唯一性 132
8.3.3 其他唯一性類型 133
8.4 雙向遍歷 134
8.5 本章小結 137
第9章 Spring Data Neo4j 138
9.1 SDN適合做什么 138
9.1.1 什么是Spring以及Spring與SDN是怎樣關聯(lián)的 140
9.1.2 SDN適合做什么(及不適合做什么) 140
9.1.3 從哪里獲得SDN 141
9.1.4 從哪里獲得更多的信息 141
9.2 用SDN建模 141
9.2.1 原始POJO域建模 142
9.2.2 注釋域模型 144
9.2.3 建模節(jié)點實體 145
9.2.4 建模關系實體 148
9.2.5 建模節(jié)點實體之間的關系 150
9.3 訪問和持久化實體 152
9.3.1 支持Spring的配置 152
9.3.2 Neo4jTemplate類 153
9.3.3 資源庫 154
9.3.4 其他選項 157
9.4 對象圖形映射選項 158
9.4.1 簡單映射 158
9.4.2 基于AspectJ的高級映射 161
9.4.3 對象映射總結 164
9.5 執(zhí)行查詢和遍歷 164
9.5.1 注釋查詢 164
9.5.2 動態(tài)派生查詢 166
9.5.3 遍歷 168
9.6 本章小結 168
第三部分 Neo4j應用實例
第10章 Neo4j的嵌入式模式與服務器模式 171
10.1 使用模式概述 171
10.2 嵌入式模式 173
10.2.1 核心Java集成 173
10.2.2 其他基于JVM的集成 176
10.3 服務器模式 177
10.3.1 Neo4j服務器概述 178
10.3.2 使用細粒度Neo4j服務器模式的REST API 179
10.3.3 使用Cypher Neo4j服務器模式REST API端點 181
10.3.4 使用遠程客戶端庫幫助訪問Neo4j服務器 182
10.3.5 服務器插件和非托管擴展 184
10.4 權衡選項 184
10.4.1 對架構的考慮 185
10.4.2 對性能的考慮 187
10.4.3 其他需要考慮的事項 190
10.5 充分利用服務器模式 190
10.5.1 避免細粒度操作 191
10.5.2 使用Cypher 192
10.5.3 服務器插件 194
10.5.4 非托管擴展 196
10.5.5 流REST API 198
10.6 本章小結 199
第11章 Neo4j的架構與應用 200
11.1 高層Neo4j架構 200
11.1.1 設置場景 202
11.1.2 硬盤 202
11.1.3 存儲文件 203
11.1.4 Neo4j緩存 205
11.1.5 事務日志及可恢復性 210
11.1.6 編程API 211
11.2 Neo4j的高可用性 212
11.2.1 Neo4j集群概述 213
11.2.2 設置Neo4j集群 216
11.2.3 復制——讀和寫的策略 218
11.2.4 緩存分區(qū) 222
11.2.5 HA小結 224
11.3 備份 225
11.3.1 離線備份 225
11.3.2 在線備份 227
11.3.3 從備份中還原數據 229
11.4 本書可能沒有涵蓋但你可能會關注的問題 229
11.4.1 安全 229
11.4.2 監(jiān)控 229
11.5 本章小結 230
11.6 最后的設想 230
附錄A 安裝Neo4j服務器 231
附錄B 設置和運行示例程序 236
附錄C 設置使用SDN的項目環(huán)境 241
附錄D 獲得更多的幫助 247