第1章 Neo4j概述 1
1.1 Neo4j數據的特點 2
1.2 Neo4j數據的錶現形式 2
1.3 Neo4j的優勢 5
1.3.1 查詢的高性能 5
1.3.2 設計的靈活性 6
1.3.3 開發的敏捷性 6
1.3.4 與其他數據庫的比較 6
1.3.5 綜閤錶現 7
1.4 哪些領域更適閤使用Neo4j 8
1.4.1 社區網絡 8
1.4.2 推薦引擎 9
1.4.3 交通運輸 9
1.4.4 物流管理 9
1.4.5 主數據管理 10
1.4.6 訪問控製 10
1.4.7 欺詐檢測 10
1.5 哪些領域不適閤使用Neo4j 10
1.6 哪些企業在使用Neo4j 11
1.6.1 阿迪達斯的購物網站 12
1.6.2 沃爾瑪的內部管理係統 12
1.6.3 eBay的電子商務 13
1.7 豐富的學習資源 13
1.7.1 精選的GraphGists 13
1.7.2 GraphGists門戶 15
1.8 小結 16
第2章 Neo4j API應用 18
2.1 創建項目工程 18
2.1.1 項目工程配置 19
2.1.2 引用Neo4j開發包 19
2.2 使用Neo4j API 20
2.2.1 使用嵌入式數據庫 20
2.2.2 創建節點和關係 21
2.2.3 查詢及更新 22
2.2.4 刪除關係和節點 23
2.3 使用標簽 25
2.4 使用索引 26
2.4.1 手動索引 26
2.4.2 模式索引 27
2.4.3 模式約束 28
2.5 圖的遍曆 31
2.5.1 廣度優先遍曆 32
2.5.2 深度優先遍曆 32
2.5.3 遍曆的路徑 34
2.6 使用Cypher查詢語言 37
2.7 連接Neo4j服務器 40
2.8 關於事務 42
2.8.1 Neo4j支持完整的事務管理特性 42
2.8.2 交互周期 43
2.8.3 隔離級彆 44
2.8.4 關於死鎖 44
2.9 其他開發語言實例 44
2.9.1 Node.js訪問Neo4j 45
2.9.2 Python訪問Neo4j 46
2.10 小結 47
第3章 Neo4j的安裝及使用 48
3.1 安裝要求及推薦 48
3.2 安裝Neo4j服務器 49
3.2.1 下載Neo4j 49
3.2.2 在Linux操作係統中安裝Neo4j 50
3.2.3 在Windows操作係統中安裝Neo4j 51
3.3 Neo4j基本配置 52
3.4 Neo4j配置優化 53
3.4.1 頁麵高速緩存 53
3.4.2 堆大小 54
3.4.3 垃圾收集器 54
3.5 使用Neo4j的Web控製颱 55
3.5.1 使用命令行輸入框 56
3.5.2 數據庫管理信息 57
3.5.3 使用收藏夾 59
3.5.4 使用幫助手冊 63
3.5.5 使用瀏覽器同步功能 65
3.5.6 使用瀏覽器設置 67
3.5.7 關於Neo4j 68
3.6 小結 69
第4章 Cypher查詢語言簡介 71
4.1 Cypher語法基礎 71
4.1.1 變量定義 72
4.1.2 可用運算符 72
4.2 Cypher讀/寫查詢結構 73
4.2.1 用CREATE創建節點 74
4.2.2 用CREATE創建關係 74
4.2.3 用MERGE創建節點 75
4.2.4 用MERGE創建關係 76
4.2.5 用SET更新數據 76
4.2.6 用DELETE刪除數據 77
4.2.7 用REMOVE移除數據 78
4.2.8 使用循環FOREACH 79
4.3 使用索引 79
4.3.1 創建和使用索引 80
4.3.2 刪除索引 81
4.4 使用約束 81
4.4.1 創建約束 81
4.4.2 刪除約束 81
4.5 使用標簽 82
4.6 Cypher隻讀查詢結構 83
4.6.1 條件過濾WHERE 83
4.6.2 聯閤查詢UNION 84
4.6.3 使用鏈接WITH 84
4.6.4 返迴結果RETURN 85
4.7 使用CASE子句 86
4.8 遍曆的路徑 86
4.8.1 最短路徑 87
4.8.2 所有最短路徑 88
4.9 使用函數 90
4.10 使用CALL調用存儲過程 92
4.11 查詢語句性能分析 93
4.12 Cypher的使用範圍 95
4.12.1 在neo4j-shell中使用Cypher查詢語言 96
4.12.2 在Rest API中使用Cypher查詢語言 98
4.13 小結 101
第5章 使用SDN建模和設計存儲庫接口 103
5.1 SDN簡介 103
5.1.1 SDN的特點 103
5.1.2 SDN存儲庫接口 104
5.2 數據模型設計 105
5.2.1 用戶訪問控製數據模型 105
5.2.2 購物網站數據模型 106
5.3 數據建模的誤區 108
5.4 Neo4j的數據類型 109
5.5 在項目中使用SDN 110
5.5.1 在項目工程中引用SDN依賴 110
5.5.2 建模中可用的OGM注解 111
5.5.3 日期類型轉換實例 112
5.6 使用SDN建模 113
5.6.1 節點建模 113
5.6.2 關係建模 116
5.7 使用SDN設計存儲庫接口 118
5.7.1 創建存儲庫接口 118
5.7.2 在標準方法中使用路徑 120
5.7.3 自定義聲明方法 120
5.7.4 使用底層方法 122
5.8 SDN配置 124
5.8.1 配置域對象和存儲庫接口 125
5.8.2 使用SDN驅動連接數據庫 125
5.9 小結 127
第6章 應用實例一:NBA季後賽預測 128
6.1 應用背景分析 129
6.1.1 勝負預測的依據 129
6.1.2 NBA季後賽數據模型 129
6.2 實體對象建模 131
6.2.1 節點實體建模 131
6.2.2 關係實體建模 134
6.3 實體持久化和查詢設計 135
6.3.1 東部球隊存儲庫接口 136
6.3.2 西部球隊存儲庫接口 137
6.3.3 比賽存儲庫接口 138
6.3.4 贏得關係存儲庫接口 139
6.4 預測算法設計 140
6.4.1 NBA季後賽的年度曆史查詢 141
6.4.2 一支球隊的比賽曆史查詢 141
6.4.3 勝負比率排名算法 142
6.4.4 輸贏預測算法 143
6.5 SDN配置及數據庫連接 144
6.5.1 數據庫連接配置 145
6.5.2 SDN配置 145
6.6 數據庫設計驗證 146
6.7 創建Web應用 149
6.8 Web前後端設計 150
6.8.1 Web後端設計 150
6.8.2 Web前端設計 154
6.9 比賽結果編輯設計 168
6.9.1 比賽結果編輯的訪問控製設計 168
6.9.2 比賽結果的錄入界麵設計 171
6.10 勝率排名的Web設計 176
6.10.1 勝率排名的訪問控製設計 176
6.10.2 勝率排名的界麵設計 177
6.11 輸贏預測的Web設計 180
6.11.1 輸贏預測的訪問控製設計 181
6.11.2 輸贏預測的界麵設計 182
6.12 使用GraphGists的測試數據 187
6.13 實例工程使用 188
6.13.1 工程配置 189
6.13.2 運行應用 189
6.14 小結 191
第7章 應用實例二:電影社區推薦引擎 192
7.1 應用背景分析 192
7.1.1 發現商業價值 193
7.1.2 建立數據模型 193
7.2 數據對象建模 194
7.2.1 節點建模 194
7.2.2 關係建模 199
7.3 存儲庫接口設計 201
7.3.1 影院存儲庫接口設計 201
7.3.2 電影存儲庫接口設計 202
7.3.3 節目存儲庫接口設計 203
7.3.4 觀眾存儲庫接口設計 204
7.4 Cypher查詢算法設計 204
7.4.1 電影排名查詢算法設計 205
7.4.2 電影推薦查詢算法設計 205
7.5 數據訪問服務類設計 208
7.5.1 分頁查詢公共服務類 209
7.5.2 數據訪問服務類 210
7.6 數據庫連接配置 212
7.6.1 SDN驅動的依賴引用 212
7.6.2 連接數據庫配置 213
7.6.3 SDN配置 213
7.7 數據庫設計驗證 214
7.8 Web設計 217
7.8.1 訪問控製設計 218
7.8.2 界麵設計 222
7.9 電影評分的Web設計 242
7.9.1 電影評分訪問控製設計 242
7.9.2 電影評分界麵設計 244
7.10 電影排名的Web設計 247
7.10.1 電影排名訪問控製設計 247
7.10.2 電影排名界麵設計 248
7.11 電影推薦的Web設計 252
7.11.1 推薦電影給觀眾的Web設計 252
7.11.2 推薦電影給朋友的Web設計 257
7.12 管理後颱的導航欄設計 258
7.13 實例工程使用 260
7.13.1 運行配置 260
7.13.2 應用發布 261
7.14 小結 262
第8章 Neo4j企業版安裝及使用 263
8.1 分布式服務器安裝 264
8.1.1 在不同機器上安裝分布式服務器 264
8.1.2 在同一颱機器上安裝分布式服務器 272
8.2 使用Haproxy實施負載均衡服務 275
8.2.1 普通負載均衡配置 275
8.2.2 Haproxy服務監控 279
8.3 實現讀/寫分離的負載均衡服務 280
8.4 小結 284
第9章 Neo4j的數據安全及備份 286
9.1 數據的備份與恢復 286
9.1.1 數據備份 286
9.1.2 清理備份日誌 288
9.1.3 數據恢復 289
9.2 數據庫安全保障 290
9.3 數據的導入與導齣 290
9.3.1 使用neo4j-import導入數據 291
9.3.2 使用Cypher導入數據 294
9.3.3 導齣數據 295
9.4 故障恢復與事務日誌 297
9.5 數據庫升級 297
9.5.1 從2.x 升級到3.0.3 297
9.5.2 在3.x之間升級 299
9.6 小結 300
結束語 301
附錄A 參考資料 302
· · · · · · (
收起)