-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Neo4j 圖數據庫擴展指南:APOC和ALGO

( 簡體 字)
作者:俞方樺類別:1. -> 資料庫 -> 綜合
譯者:
出版社:清華大學出版社Neo4j 圖數據庫擴展指南:APOC和ALGO 3dWoo書號: 53107
詢問書籍請說出此書號!

缺書
NT售價: 395

出版日:7/1/2020
頁數:290
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787302555483
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

本書的內容
Neo4j是當今全球領先的圖數據庫軟件,起源于開源的圖數據庫項目,經過十余年的發展,已經在很多企業、研究機構中有著廣泛和成功的應用。隨著數據庫規模的增加,以及對圖算法類型、查詢性能和數據庫管理功能等要求越來越高,Neo4j推出了擴展包APOC和ALGO以滿足這些要求。
APOC 和ALGO 都是Neo4j開發和共享的數據庫擴展,它們包含了很多實用的算法過程和函數。APOC提供了豐富的與查詢執行、數據集成、數據庫管理等相關的過程和函數,而ALGO則包含常用的圖算法過程。APOC是Awesome Procedures Of Cypher的簡稱,同時也是電影《黑客帝國》中的一個角色;ALGO的名字就很容易明白了,它就是英文ALGOrithms(算法)的開始部分。
APOC和ALGO的內容豐富、功能強大,作為Neo4j數據庫功能的擴充,是實現高性能查詢、數據庫集成、復雜算法等復雜應用所必須的。然而,國內的技術人員苦于一直沒有關于APOC和ALGO介紹的中文資料,無法真正發揮它們的價值。另一方面,英文在線文檔中使用的數據樣例也不是中國用戶所熟悉和了解的。這對于深刻理解像圖算法這樣的復雜概念來說又增加了不少難度。
出于上面的原因,我們在策劃《圖數據庫技術叢書》系列的第三本時,選擇了介紹APOC和ALGO擴展包。
本書基于Neo4j數據庫3.5版本及其對應的ALGO和APOC擴展包,詳細介紹了近二百個主要過程和函數的定義、相關理論、使用方法、代碼樣例,讓廣大Neo4j圖數據庫的設計和開發人員能夠快速掌握正確和高效的圖數據庫分析方法及其應用開發技能。
本書分成四個部分:
(1)概述(第1~2章),介紹Neo4j數據庫擴展的起源和安裝配置方法;
(2)APOC擴展包使用指南(第3~9章),介紹APOC中7類主要過程和方法的使用;
(3)ALGO擴展包使用指南(第10~13章),介紹ALGO中4類圖算法相關過程和方法的使用;
(4)Neo4j數據庫擴展開發指南(第14~15章),介紹使用Java開發數據庫擴展過程和函數的方法。
全書共分15章,各章節介紹如下:
第1章 Neo4j圖數據庫擴展概述。回顧Neo4j圖數據庫擴展的起源和來歷,并概述兩個主要擴展包APOC和ALGO的內容。對于2020年4月最新發布的Graph Data Science擴展包,及其對ALGO擴展包中相關圖算法過程所做的接口改變也進行了介紹。
第2章 擴展包的安裝和配置。介紹擴展包在不同Neo4j版本中的安裝、配置和測試方法。
第3章 路徑擴展過程。介紹APOC中與路徑擴展相關的過程,通過實例說明如何對圖中節點和關系進行更加高效的遍歷,也介紹了APOC中對子圖操作的過程。
第4章 查詢任務管理。介紹查詢的更新方法,特別是如何通過控制批次大小減少事務對內存的要求、如何通過指定并發性提高查詢執行性能。本章還介紹了動態Cypher查詢執行方法和條件分支執行。
第5章 數據導入和導出。介紹從各種數據源,包括XML、JSON、JDBC以及外部Neo4j數據庫導入數據到Neo4j的方法,以及從Neo4j導出圖或圖的一部分到各種格式/目的數據存儲的方法。
第6章 圖重構。圖重構是對圖數據庫中節點、關系和屬性定義的變更和轉換操作。APOC提供的重構過程支持節點的合并、到關系的轉換,關系的合并、重定向、反轉、到節點的轉換,根據屬性值創建節點等操作。
第7章 數據庫運維。主要介紹APOC中關于數據庫觸發器、索引管理、元數據和監控相關指標的過程和函數。
第8章 工具函數和過程。介紹APOC中路徑對象相關操作、地圖相關過程、集合操作;本章還介紹了幾種主要的圖生成過程。
第9章 虛擬圖。虛擬圖是僅存在于內存的圖。虛擬圖的創建和查詢操作包括虛擬節點和關系的創建和查詢。在內存中的圖對象是許多圖算法的輸入。
第10章 路徑搜索。最短路徑是圖算法和分析中最基本的一類方法。ALGO擴展包提供若干常用最短路徑搜索方法,以及最小生成樹和隨機游走的算法過程。
第11章 社團檢測。介紹ALGO包中提供的幾類相關算法過程:三角結構搜索、連通分量、標簽傳播、模塊度方法。
第12章 中心性算法。介紹ALGO包中提供的幾類中心性算法過程:維度中心性、緊密中心性、協調中心性、間接中心性、特征向量中心性和頁面排行。
第13章 相似度算法。介紹ALGO包中支持的幾種計算節點和/或關系相似度的函數和方法,包括Jaccard相似度、重疊相似度、余弦相似度以及幾何相似度。對圖學習相關概念和方法,例如特征工程、圖嵌入也做了介紹。
第14章 數據庫擴展開發。詳細、完整地介紹如何使用Java開發客戶化的Neo4j數據庫擴展過程和函數。
第15章 自定義的圖遍歷。在第14章的基礎之上,進一步深入介紹如何基于Neo4j的“遍歷框架”實現高效的圖遍歷過程。
如何使用本書
本書提供APOC和ALGO擴展包中多數過程和方法的使用參考,每個過程或方法均包括:
? 概述:說明過程和函數的用途、相關理論和方法;
? 調用接口:查詢、參數說明和返回值;
? 示例:基于樣例數據的Cypher。
本書章節按照過程所屬的擴展包(APOC或ALGO)、然后是功能類別進行組織。如果你知道要進行什么樣的操作、實現什么樣的功能,可以通過目錄找到對應的章節。
如果你要查找特定的過程或函數,可以從“目錄”后的“ALGO過程和函數索引”、“APOC過程和函數索引”按照字母順序找到它們所在的章節。
格式及說明
為方便區別不同的內容,本書中使用的特定排版格式。舉例說明如下(按照在書中出現的先后順序排列)。
(1)Linux命令行:
U
N
I
X mkdir plugins
pushd plugins
wget https://github.com/neo4j-contrib/neo4j-apoc-procedures/releases/download/3.5/apoc-3.5-all.jar
popd
docker run --rm -e NEO4J_AUTH=none -p 7474:7474 -v $PWD/plugins:/plugins -p 7687:7687 neo4j:3.5
(2)Cypher查詢(包含注釋行):
C
Y
P
H
E
R // 2.2 (1) 測試ALGO擴展包安裝
CALL algo.list

// 2.2 (2) 測試APOC擴展包安裝
RETURN apoc.version()
(3)過程定義:
下面的圖例表示過程apoc.path.expandConfig:
? 支持有向圖;
? 無關于權重圖,即圖中關系上是否帶權重屬性對過程沒有影響;
? 返回結果到客戶端;
? 不更新數據庫;
? 低復雜度,通常是O(N)、O(LogN)或O(N*LogN);
? 不支持并行執行(單進程)。
過程 apoc.path.expandConfig


(4)過程接口:
過程接口 CALL apoc.path.subgraphNodes(
startNode <id>Node/list,config
) YIELD node
(5)Neo4j數據庫配置選項(在neo4j.conf文件中指定):
neo4j.conf apoc.jobs.pool.num_threads=10
(6)CSV文件內容:

C
S
V name,genre,zi,weapon,title
劉備,男,玄德,雙?,昭烈皇帝
關羽,男,云長,青龍偃月刀;長劍,漢壽亭候
(7)JSON文件內容:
J
S
O
N {
"store": {
"book": [
{
"category": "reference"
}
],
"bicycle": {
"color": "red", "price": 19.95
}
},
"expensive": 10
}
(8)XML文檔內容:
XML <?xml version="1.0"?>
<目錄>
<圖書 id="bk101">
<作者>羅貫中</作者>
<書名>三國演義</書名>
<出版日期>2000-10-01</出版日期>
<簡介>中國古代四大名著之一。三國指的是魏、蜀漢、吳。</簡介>
</圖書>
</目錄>
(9)Java代碼:
J
A
V
A package com.mypackage;

import org.neo4j.graphdb.GraphDatabaseService;

public class Procedures {

@Context
public GraphDatabaseService db;

@Context
public Log log;

}
(10)重要技巧,建議使用:

重要技巧 僅在對路徑進行擴展時定義序列才是重要的。因此,如果只需要搜索能夠到達的節點,或者路徑的序列由其他規則選擇,那應當避免使用序列sequence參數。例如,我們建議在apoc.path.subgraphNodes()、apoc.path.subgraphAll()和apoc.path.spanningTree()過程中不要使用序列,因為這些過程中實現的高效匹配唯一節點算法會干擾序列化路徑尋址的執行。
(11)警告信息,避免使用:

避免使用 除非明確知道需求、數據特征、而且已經測試過相關邏輯,否則不要使用NONE作為唯一性規則,因為這樣會在遍歷有環的圖時形成無限循環,從而影響數據庫運行。
(12)重要提示,謹慎使用:

小心使用 僅當數據庫是存儲在SSD(固態硬盤)時才使用parallel:true選項,因為SSD具有更好的隨機讀寫速率。如果是物理硬盤,則不要使用并行選項,因為這反而會降低整體執行效率。

源碼下載與技術支持
本書中所有樣例數據、Cypher代碼和Java項目和代碼均可以在這里免費訪問:
https://github.com/Joshua-Yu/neo4j-extensions-book
如有問題,歡迎在Neo4j中文社區中留言:http://neo4j.com.cn。
作者聯系郵箱:張幟:zhizh@we-yun.com,俞方樺:yufanghua@yahoo.com。
致 謝
每一本書從構思到編寫到出版都不是一蹴而就的,其中不僅僅有編者的辛勤努力,也與更多人的支持和付出密不可分。這里,我首先要感謝張幟老師,作為叢書的主編,是他激勵我寫這本書、積極與出版社聯系,并在撰寫過程中給予我很多指導。
我還要感謝Neo4j的同事們。在寫作過程中無論什么時候我有問題,他們都及時耐心地回復我,他們似乎是7×24小時在線、永遠不知疲倦。對于本書的內容,他們也提出了寶貴的建議和意見。
我要感謝來自華為和平安科技的用戶們,他們提供的關于過程文檔和代碼的反饋意見,不僅對本書的內容有積極的參考價值,還使得存在的代碼缺陷、文檔疏漏得到及時修正。
特別感謝清華大學出版社的編輯老師們,有了他們的竭力支持和精雕細琢,本書才得以順利問世。
在本書撰寫的過程中,尤其感謝我的家人給予的支持和幫助;特別地,謹以此書紀念我的母親。
期望這本書能夠給中國大數據和圖數據庫領域的同行們提供有益的借鑒和參考,特別為圖數據庫的研究和應用發展盡綿薄之力。由于時間倉促,以及筆者能力所限,書中難免有錯誤及不足之處,敬請讀者海涵,并提出寶貴意見。我們會在后續的版本中予以更正和補充。




俞方樺
2020年1月3日于悉尼
內容簡介:

本書共13章,全面、系統和詳盡地介紹Neo4j圖數據庫擴展的概念、APOC和ALGO擴展包的使用、以及開發服務器擴展的方法。內容分為四個部分,依次為:Neo4j 圖數據庫擴展介紹;APOC 擴展包函數和過程指南;ALGO 擴展包函數和過程指南;開發和測試方法。
目錄:

第一部分概述
第1章Neo4j圖數據庫擴展概述 3
1.1Neo4j圖數據庫平臺 3
1.1.1圖數據庫是當今最熱門的NoSQL數據庫類別 3
1.1.2Neo4j圖數據庫平臺 4
1.1.3原生圖數據庫 5
1.2Neo4j數據庫擴展 7
1.2.1背景 7
1.2.2APOC擴展庫的內容 8
1.2.3ALGO擴展庫的內容 12
1.2.4ALGO擴展庫的未來版本 14
第2章擴展包的安裝和配置 18
2.1擴展包的下載 18
2.2擴展包的安裝和配置 18
2.2.1在Neo4jDesktop中自動安裝 18
2.2.2手動安裝 19
2.2.3在Docker容器中安裝 19
2.2.4測試安裝 20
2.2.5在線文檔 20
第二部分APOC擴展包使用指南
第3章路徑擴展過程 23
3.1路徑擴展過程概述 23
3.2主要參數說明 25
3.2.1標簽過濾器(labelFilter) 25
3.2.2關系過濾器(relationshipFilter) 25
3.2.3標簽和關系序列(Sequence) 26
3.2.4唯一性規則(Uniqueness) 27
3.2.5理解Cypher的模式匹配 28
3.3基本路徑擴展過程 32
3.3.1定義 32
3.3.2應用 32
3.3.3過程概述–apoc.path.expand 33
3.3.4過程調用接口–apoc.path.expand 33
3.3.5示例–創建三國人物關系圖 33
3.3.6示例–apoc.path.expand 34
3.4可配置的路徑擴展過程 35
3.4.1定義 35
3.4.2過程概述–apoc.path.expandConfig 36
3.4.3過程調用接口–apoc.path.expandConfig 36
3.4.4示例–apoc.path.expandConfig 37
3.5搜索子圖 38
3.5.1定義 38
3.5.2應用 39
3.5.3過程概述–apoc.path.subgraphNodes 39
3.5.4過程調用接口–apoc.path.subgraphNodes 39
3.5.5示例–apoc.path.subgraphNodes 41
3.6搜索最小生成樹 42
第4章查詢任務管理 43
4.1查詢任務管理概述 43
4.2按照條件循環執行–commit 46
4.2.1定義 46
4.2.2應用 47
4.2.3過程概述–apoc.periodic.commit 47
4.2.4過程調用接口–apoc.periodic.commit 47
4.2.5示例–apoc.periodic.commit 47
4.3按照集合內容循環執行–iterate 48
4.3.1定義 48
4.3.2應用 49
4.3.3過程概述–apoc.periodic.iterate 49
4.3.4過程調用接口–apoc.periodic.iterate 49
4.3.5示例–apoc.periodic.iterate 50
4.4異步執行Cypher查詢–submit 51
4.4.1定義 51
4.4.2應用 51
4.4.3過程概述 51
4.4.4示例 51
4.5自定義Cypher函數和過程 52
4.5.1定義 52
4.5.2應用 52
4.5.3過程調用接口 52
4.5.4示例 54
4.6Cypher執行過程 54
4.6.1定義 54
4.6.2應用 56
4.6.3過程調用接口–apoc.cypher.run 56
4.6.4示例–apoc.cypher.run 56
4.6.5過程調用接口–apoc.cypher.runTimeboxed 56
4.6.6示例–apoc.cypher.runTimeboxed 57
4.6.7過程調用接口–apoc.cypher.doIt 58
4.6.8示例–apoc.cypher.doIt 58
4.6.9過程調用接口–apoc.cypher.runFiles 59
4.6.10過程調用接口–apoc.cypher.runSchemaFiles 60
4.6.11過程調用接口–apoc.cypher.parallel 60
4.6.12示例–apoc.cypher.parallel 61
4.6.13過程調用接口–apoc.cypher.mapParallel 61
4.6.14示例–apoc.cypher.mapParallel 61
4.7Cypher執行的條件分支 62
4.7.1定義 62
4.7.2應用 62
4.7.3過程調用接口–apoc.*.when 62
4.7.4示例–apoc.when 63
4.7.5過程調用接口–apoc.case 63
4.7.6示例–apoc.cypher.*case 64
第5章數據導入和導出 65
5.1數據導入和導出概述 65
5.2導出到CSV文件–export.csv.* 69
5.2.1定義 69
5.2.2應用 69
5.2.3過程概述 70
5.2.4過程調用接口–export.csv.all 70
5.2.5示例–export.csv.all 70
5.2.6過程調用接口–export.csv.data 71
5.2.7示例–export.csv.data 71
5.2.8過程調用接口–export.csv.graph 72
5.2.9示例–export.csv.graph 72
5.2.10過程調用接口–export.csv.query 73
5.2.11示例–export.csv.query 73
5.3導出到JSON文件 73
5.3.1定義 73
5.3.2應用 74
5.3.3過程概述 74
5.3.4過程調用接口–export.json.all 74
5.3.5示例–export.json.all 74
5.3.6過程調用接口–export.json.data 74
5.3.7示例–export.json.data 75
5.3.8過程調用接口–export.csv.graph 75
5.3.9示例–export.json.graph 76
5.3.10過程調用接口–export.json.query 76
5.3.11示例–export.json.query 76
5.4導出到Cypher查詢文件 77
5.4.1定義 77
5.4.2應用 77
5.4.3過程概述 77
5.4.4過程調用接口–export.cypher.all 77
5.4.5示例–export.cypher.all 78
5.4.6過程調用接口–export.cypher.data 79
5.4.7示例–export.cypher.data 79
5.4.8過程調用接口–export.cypher.graph 79
5.4.9示例–export.cypher.graph 80
5.4.10過程調用接口–export.cypher.query 80
5.4.11示例–export.cypher.query 81
5.4.12過程調用接口–export.cypher.schema 81
5.4.13示例–export.cypher.schema 82
5.5導入CSV文件 82
5.5.1定義 82
5.5.2應用 82
5.5.3過程概述 82
5.5.4過程調用接口–apoc.load.csv 83
5.5.5示例–apoc.load.csv 84
5.6導入JSON數據 85
5.6.1定義 85
5.6.2應用 87
5.6.3過程概述 87
5.6.4過程調用接口–apoc.load.json 87
5.6.5示例–apoc.load.json 88
5.7導入XML文件 90
5.7.1定義 90
5.7.2導入XML文檔–apoc.xml.import 90
5.7.3示例–apoc.xml.import 92
5.7.4XML文檔加載–apoc.load.xml 94
5.7.5示例–apoc.load.xml 95
5.8訪問其他Neo4j數據庫 96
5.8.1概述 96
5.8.2過程定義–apoc.bolt.execute 97
5.8.3過程調用接口–apoc.bolt.execute 97
5.8.4示例–apoc.bolt.execute 98
5.8.5過程定義–apoc.bolt.load 99
5.9從JDBC源導入數據 99
5.9.1概述 99
5.9.2過程定義–apoc.load.driver 101
5.9.3過程調用接口–apoc.load.driver 101
5.9.4過程定義–apoc.load.jdbc 102
5.9.5過程調用接口–apoc.load.jdbc 102
5.9.6示例–apoc.load.jdbc 102
5.9.7過程定義–apoc.load.jdbcUpdate 103
5.9.8過程調用接口–apoc.load.jdbcUpdate 103
5.9.9示例–apoc.load.jdbcUpdate 104
5.9.10過程定義–apoc.model.jdbc 104
5.9.11過程調用接口–apoc.model.jdbc 104
5.9.12示例–apoc.model.jdbc 105
第6章圖重構 107
6.1圖重構概述 107
6.2克隆節點 108
6.2.1定義 108
6.2.2過程概述 109
6.2.3過程調用接口–apoc.refactor.cloneNodes 109
6.2.4示例–apoc.refactor.cloneNodes 109
6.3克隆節點及其關系 110
6.3.1定義 110
6.3.2過程概述 110
6.3.3過程調用接口–apoc.refactor.cloneNodesWithRelationships 110
6.4克隆子圖 110
6.4.1定義 110
6.4.2過程概述 111
6.4.3過程調用接口–apoc.refactor.cloneSubgraph 111
6.4.4示例–apoc.refactor.cloneSubgraph 111
6.5合并節點 112
6.5.1定義 112
6.5.2過程概述 112
6.5.3過程調用接口–apoc.refactor.mergeNodes 112
6.5.4示例–apoc.refactor.mergeNodes 112
6.6合并關系 113
6.6.1定義 113
6.6.2過程概述 113
6.6.3過程調用接口–apoc.refactor.mergeRelationships 114
6.6.4示例–apoc.refactor.mergeRelationships 114
6.7重定向關系 115
6.7.1定義 115
6.7.2過程概述 115
6.7.3過程調用接口–apoc.refactor.from 115
6.7.4示例–apoc.refactor.from 116
6.8反轉關系 116
6.8.1定義 116
6.8.2過程概述 116
6.8.3過程調用接口–apoc.refactor.invert 117
6.8.4示例–apoc.refactor.invert 117
6.9設置關系類型 117
6.9.1定義 117
6.9.2過程概述 118
6.9.3過程調用接口–apoc.refactor.setType 118
6.9.4示例–apoc.refactor.setType 118
6.10將關系轉換成節點 118
6.10.1定義 118
6.10.2過程概述 119
6.10.3過程調用接口–apoc.refactor.extractNode 119
6.10.4示例–apoc.refactor.extractNode 119
6.11將節點轉換為關系 120
6.11.1定義 120
6.11.2過程概述 120
6.11.3過程調用接口–apoc.refactor.collapseNode 120
6.11.4示例–apoc.refactor.cloneNodes 121
6.12標準化為布爾值 121
6.12.1定義 121
6.12.2過程概述 121
6.12.3過程調用接口–apoc.refactor.normalizeAsBoolean 121
6.12.4示例–apoc.refactor.normalizeAsBoolean 122
6.13分類 123
6.13.1定義 123
6.13.2過程概述 123
6.13.3過程調用接口–apoc.refactor.categorize 123
6.13.4示例–apoc.refactor.categorize 124
6.14重命名 125
6.14.1定義 125
6.14.2過程概述 125
6.14.3示例–apoc.refactor.rename.nodeProperty 125
第7章數據庫運維 127
7.1數據庫運維概述 127
7.2使用觸發器 129
7.2.1概述 129
7.2.2過程概述–apoc.trigger.add 130
7.2.3過程調用接口–apoc.trigger.add 131
7.2.4示例–apoc.trigger.add 131
7.3管理索引 132
7.3.1概述 132
7.4查看元數據 133
7.4.1概述 133
7.4.2過程概述–apoc.meta.* 134
7.4.3過程調用接口–apoc.meta.* 134
7.4.4示例–apoc.meta.* 135
7.5數據庫監控 136
7.5.1概述 136
7.5.2過程概述–apoc.monitor.* 136
7.5.3過程調用接口–apoc.monitor.* 136
7.5.4示例–apoc.monitor.* 136
第8章工具函數和過程 138
8.1工具函數和過程概述 138
8.2節點相關操作 143
8.2.1概述 143
8.3路徑相關操作 145
8.3.1概述 145
8.3.2函數概述–apoc.path.combine 146
8.3.3函數調用接口–apoc.path.combine 146
8.3.4示例–apoc.path.combine 146
8.3.5函數概述–apoc.path.create 147
8.3.6函數調用接口–apoc.path.create 147
8.3.7示例–apoc.path.create 147
8.3.8函數概述–apoc.path.elements 147
8.3.9函數調用接口–apoc.path.elements 147
8.3.10示例–apoc.path.elements 148
8.3.11函數概述–apoc.path.slice 148
8.3.12函數調用接口–apoc.path.slice 148
8.3.13示例–apoc.path.slice 148
8.4并行節點搜索 149
8.4.1概述 149
8.4.2函數概述–apoc.search.node 150
8.4.3函數調用接口–apoc.search.node 150
8.4.4示例–apoc.search.node 150
8.5地圖和空間計算相關功能 150
8.5.1概述 150
8.5.2過程概述–apoc.spatial.geocode 152
8.5.3過程調用接口–apoc.spatial.geocode 152
8.5.4示例–apoc.spatial.geocode 152
8.5.5過程概述–apoc.spatial.reverseGeocode 153
8.5.6過程調用接口–apoc.spatial.reverseGeocode 153
8.5.7示例–apoc.spatial.reverseGeocode 153
8.6集合相關操作 154
8.7圖生成 157
8.7.1概述 157
8.7.2過程概述–apoc.generate.er 157
8.7.3過程調用接口–apoc.generate.er 158
8.7.4示例–apoc.generate.er 158
8.7.5過程概述–apoc.generate.ws 159
8.7.6過程調用接口–apoc.generate.ws 160
8.7.7示例–apoc.generate.ws 160
8.7.8過程概述–apoc.generate.ba 161
8.7.9過程調用接口–apoc.generate.ba 162
8.7.10示例–apoc.generate.ba 163
8.7.11過程概述–apoc.generate.complete 164
8.7.12過程調用接口–apoc.generate.complete 164
8.7.13示例–apoc.generate.complete 164
8.7.14過程概述–apoc.generate.simple 165
8.7.15過程調用接口–apoc.generate.simple 165
8.7.16示例–apoc.generate.simple 165
第9章虛擬圖 167
9.1虛擬圖概述 167
9.2虛擬節點和關系 168
9.2.1概述 168
9.2.2過程概述–apoc.create.vNode 170
9.2.3過程調用接口–apoc.create.vNode 171
9.2.4示例–apoc.create.vNode 171
9.2.5過程概述–apoc.create.vNodes 171
9.2.6過程調用接口–apoc.create.vNodes 171
9.2.7示例–apoc.create.vNodes 172
9.2.8過程概述–apoc.create.vRelationship 172
9.2.9過程調用接口–apoc.create.vRelationship 172
9.2.10示例–apoc.create.vRelationship 173
9.2.11過程概述–apoc.create.vPattern 174
9.2.12過程調用接口–apoc.create.vPattern 174
9.2.13示例–apoc.create.vPattern 174
9.2.14過程概述–apoc.create.vPatternFull 175
9.2.15過程調用接口–apoc.create.vPatternFull 175
9.2.16過程概述–apoc.nodes.collapse 176
9.2.17過程調用接口–apoc.nodes.collapse 176
9.2.18示例–apoc.nodes.collapse 177
9.3虛擬圖 178
9.3.1概述 178
9.3.2過程概述–apoc.graph.fromData 179
9.3.3過程調用接口–apoc.graph.fromData 179
9.3.4示例–apoc.graph.fromData 179
9.3.5過程概述–apoc.graph.fromPath 179
9.3.6過程調用接口–apoc.graph.fromPath 180
9.3.7示例–apoc.graph.fromPath 180
9.3.8過程概述–apoc.graph.fromPaths 180
9.3.9過程概述–apoc.graph.fromCypher 180
9.3.10過程調用接口–apoc.graph.fromCypher 180
9.3.11示例–apoc.graph.fromCypher 181
9.3.12過程概述–apoc.graph.fromDocument 181
9.3.13過程調用接口–apoc.graph.fromDocument 181
9.3.14示例–apoc.graph.fromDocument 182
9.3.15過程概述–apoc.nodes.group 183
9.3.16過程調用接口–apoc.nodes.group 184
9.3.17示例–apoc.nodes.group 185
第三部分ALGO擴展包使用指南
第10章路徑搜索 189
10.1路徑搜索概述 189
10.2廣度和深度優先搜索 192
10.3最短路徑 192
10.3.1概述 192
10.3.2過程概述–apoc.shortestPath* 193
10.3.3過程調用接口–algo.shortestPath* 193
10.3.4示例–algo.shortestPath 194
10.4A*最短路徑 196
10.4.1概述 196
10.4.2過程概述–apoc.shortestPath.astar* 196
10.4.3過程調用接口–algo.shortestPath* 196
10.4.4示例–algo.shortestPath.astar* 197
10.5單源起點最短路徑 198
10.5.1概述 198
10.5.2過程概述–apoc.shortestPath.deltaStepping* 199
10.5.3過程調用接口–algo.shortestPath.deltaStepping* 199
10.5.4示例–algo.shortestPath.deltaStepping* 200
10.6全圖最短路徑 201
10.6.1概述 201
10.6.2過程概述–algo.allShortestPaths* 201
10.6.3過程調用接口–algo.allShortestPaths* 201
10.6.4示例–algo.allShortestPaths 202
10.7K-條最短路徑 203
10.7.1概述 203
10.7.2過程概述–algo.kShortestPaths* 204
10.7.3過程調用接口–algo.kShortestPaths* 204
10.7.4示例–algo.kShortestPaths 206
10.8最小生成樹 206
10.8.1概述 206
10.8.2過程概述–algo.spanningTree.* 207
10.8.3過程調用接口–algo.spanningTree.minimum 207
10.8.4示例–algo.spanningTree.minimum 208
10.9隨機游走 209
10.9.1定義 209
10.9.2應用 209
10.9.3過程概述 209
10.9.4簡單過程調用接口 210
10.9.5完整過程調用接口 210
10.9.6示例–algo.randomWalk 211
第11章社團檢測 212
11.1社團檢測概述 212
11.1.1算法一覽 212
11.1.2圖的聚集成群特征 214
11.1.3過程使用說明 215
11.2三角計數和集聚系數 216
11.2.1概述 216
11.2.2過程概述–algo.triangle.stream 217
11.2.3過程調用接口–algo.triangle* 217
11.2.4示例–algo.triangle.stream 218
11.2.5過程概述–algo.triangleCount* 218
11.2.6過程調用接口–algo.triangle* 218
11.2.7示例–algo.triangleCount.stream 219
11.3強連通分量 219
11.3.1概述 219
11.3.2過程概述–algo.scc 220
11.3.3過程調用接口–algo.scc 221
11.4連通分量 221
11.4.1概述 221
11.4.2過程概述–algo.unionFind* 222
11.4.3過程調用接口–algo.unionFind* 223
11.4.4示例–algo.unionFind* 224
11.5標簽傳播算法 224
11.5.1概述 224
11.5.2過程概述–algo.labelPropagation* 226
11.5.3過程調用接口–algo.labelPropagation* 226
11.5.4示例–algo.unionFind* 227
11.6Louvain模塊度算法 228
11.6.1概述 228
11.6.2過程概述–algo.louvain* 230
11.6.3過程調用接口–algo.louvain* 230
11.6.4示例–algo.louvain* 232
11.7小結 233
第12章中心性算法 234
12.1中心性算法概述 234
12.2度中心性 237
12.2.1概述 237
12.2.2過程概述–algo.degree* 238
12.2.3過程調用接口–algo.degree* 238
12.2.4示例–algo.degree* 239
12.3緊密中心性 240
12.3.1概述 240
12.3.2過程概述–algo.closeness* 241
12.3.3過程調用接口–algo.closeness* 241
12.3.4示例–algo.closeness* 242
12.4協調中心性 242
12.4.1概述 242
12.4.2過程概述–algo.harmonic* 243
12.4.3過程調用接口–algo.harmonic* 243
12.4.4示例–algo.harmonic* 244
12.5間接中心性 244
12.5.1概述 244
12.5.2過程概述–algo.betweenness* 245
12.5.3過程調用接口–algo.betweenness* 246
12.5.4示例–algo.betweenness* 247
12.6特征向量中心性 247
12.6.1概述 247
12.6.2過程概述–algo.eigenvector* 248
12.6.3過程調用接口–algo.eigenvector* 248
12.6.4示例–algo.eigenvector* 249
12.7頁面排行 250
12.7.1概述 250
12.7.2過程概述–algo.pageRank* 252
12.7.3過程調用接口–algo.pageRank* 252
12.7.4示例–algo.pageRank* 253
12.8小結 254
第13章相似度算法 255
13.1相似度算法概述 255
13.1.1相似度過程 255
13.1.2什么是相似度 256
13.2Jaccard相似度 257
13.2.1概述 257
13.2.2函數/過程概述–algo.similarity.jaccard* 258
13.2.3調用接口–algo.similarity.jaccard 258
13.2.4示例–algo.similarity.jaccard* 260
13.3重疊相似度 260
13.3.1概述 260
13.3.2函數/過程概述–algo.similarity.overlap* 261
13.3.3調用接口–algo.similarity.overlap 261
13.4余弦相似度 262
13.4.1概述 262
13.4.2函數/過程概述–algo.similarity.cosine* 263
13.4.3調用接口–algo.similarity.cosine 263
13.4.4示例–algo.similarity.cosine* 264
13.5歐幾里德相似度 265
13.5.1概述 265
13.5.2函數/過程概述–algo.similarity.euclideanDistance* 265
13.5.3調用接口–algo.similarity.euclideanDistance* 266
13.5.4示例–algo.similarity.euclideanDistance* 267
第四部分Neo4j數據庫擴展開發指南
第14章數據庫擴展開發 271
14.1數據庫擴展開發概述 271
14.2關于安全性 272
14.2.1沙箱 272
14.2.2白名單 273
14.3創建數據庫擴展項目 273
14.3.1創建新項目 273
14.3.2指定項目信息 275
14.3.3創建程序包和過程類 277
14.4創建數據庫擴展過程 279
14.4.1第一個過程–hello 279
14.4.2編譯和打包–hello 281
14.4.3部署和測試–hello 283
14.4.4小結 283
14.5開發擴展函數 285
14.5.1調用擴展函數 285
14.5.2開發擴展函數 285
14.6開發擴展匯總函數 286
14.6.1調用匯總函數 286
14.6.2編寫用戶定義的匯總函數 286
14.7細粒度圖數據訪問控制 287
14.7.1方法 288
14.7.2定義用戶和角色 288
14.7.3實現擴展過程 288
第15章自定義的圖遍歷 289
15.1自定義的圖遍歷概述 289
15.2Neo4j遍歷框架 289
15.2.1主要概念 290
15.2.2遍歷框架JavaAPI 290
15.3生成測試圖 292
15.4k-度鄰居統計–Cypher的實現 292
15.5k-度鄰居統計–擴展過程的實現 293
15.5.1創建過程 293
序: