neo4j apoc 系列
Neo4j APOC-01-圖資料庫 apoc 外掛介紹
Neo4j APOC-01-圖資料庫 apoc 外掛安裝 neo4j on windows10
Neo4j APOC-03-圖資料庫 apoc 實戰使用使用
Neo4j APOC-04-圖資料庫 apoc 實戰使用使用 apoc.path.spanningTree 最小生成樹
如何安裝 APOC 外掛
安裝 Neo4j 的 APOC 外掛的步驟相對簡單,具體取決於你使用的是哪種 Neo4j 版本(例如 Neo4j Desktop、Neo4j Aura 或 Neo4j 伺服器)。
以下是不同環境下安裝 APOC 外掛的步驟:
1. Neo4j Desktop 安裝 APOC 外掛
Neo4j Desktop 是一個桌面版的 Neo4j 安裝工具,安裝和管理 APOC 外掛非常簡單。
發現不太行,一直安裝無響應。
步驟:
- 開啟 Neo4j Desktop 應用。
- 在左側的 Projects 皮膚中,選擇你要使用的 Database,然後點選該資料庫旁邊的 Settings 按鈕(齒輪圖示)。
- 在彈出的設定頁面中,找到 Plugins 選項卡。
- 在外掛列表中,找到 APOC 外掛。如果沒有顯示,請確保 Neo4j Desktop 已連線到網際網路。
- 點選 Install 按鈕安裝 APOC 外掛。安裝完成後,它將自動啟用。
- 安裝完成後,你可以在 Database 皮膚中看到 APOC 外掛已啟用。
3. Neo4j 伺服器版安裝 APOC 外掛
對於自託管的 Neo4j 伺服器,安裝 APOC 外掛需要手動操作。
你需要將 APOC 外掛檔案放入 Neo4j 的外掛目錄,並修改配置檔案來啟用它。
參考文件:https://neo4j.com/docs/apoc/5/overview/
步驟:
- 下載 APOC 外掛:
CALL dbms.components() YIELD name, versions
RETURN name, versions;
結果:
╒══════════════╤══════════╕
│name │versions │
╞══════════════╪══════════╡
│"Neo4j Kernel"│["5.12.0"]│
└──────────────┴──────────┘
我的 neo4j 版本是 5.12.0,對應的版本可以在文件檢視
https://neo4j.com/docs/apoc/5/installation/#apoc
對應的版本為:
https://github.com/neo4j/apoc/releases/tag/5.12.0
-
將 APOC 外掛複製到 Neo4j 外掛目錄:
- 將下載的
apoc-x.x.x-all.jar
檔案複製到 Neo4j 的plugins
目錄。
預設路徑:
- 對於 Linux/macOS:
/var/lib/neo4j/plugins/
- 對於 Windows:
C:\Program Files\Neo4j\neo4j-community-x.x.x\plugins\
- 將下載的
我的本地是:
C:\Users\dh\.Neo4jDesktop\relate-data\dbmss\dbms-95030949-1290-4c0a-867e-fd9f9aac13d6\plugins
- 修改 Neo4j 配置檔案:
- 開啟 Neo4j 的配置檔案
neo4j.conf
。這個檔案通常位於conf
目錄中,路徑類似於:- 對於 Linux/macOS:
/etc/neo4j/neo4j.conf
或/var/lib/neo4j/conf/neo4j.conf
- 對於 Windows:
C:\Program Files\Neo4j\neo4j-community-x.x.x\conf\neo4j.conf
- 對於 Linux/macOS:
- 開啟 Neo4j 的配置檔案
比如我的是在 :
C:\Users\dh\.Neo4jDesktop\relate-data\dbmss\dbms-95030949-1290-4c0a-867e-fd9f9aac13d6\conf
-
在配置檔案中新增以下行,啟用 APOC 外掛:
dbms.security.procedures.unrestricted=apoc.* dbms.security.procedures.allowlist=apoc.*
這裡我加了這兩個,如果有多個,逗號隔開。
啟動的時候失敗了,發現以前有這個配置,改一下:
dbms.security.procedures.unrestricted=jwt.security.*,apoc.*
-
重啟 Neo4j:
- 儲存配置檔案並重啟 Neo4j 伺服器。你可以透過命令列重啟 Neo4j:
- 對於 Linux/macOS:
sudo systemctl restart neo4j
- 對於 Windows,使用 Neo4j Desktop 或服務管理工具進行重啟。
- 對於 Linux/macOS:
- 儲存配置檔案並重啟 Neo4j 伺服器。你可以透過命令列重啟 Neo4j:
-
驗證安裝:
- 你可以透過執行以下 Cypher 查詢來驗證 APOC 外掛是否安裝成功:
RETURN apoc.version()
- 如果安裝成功,它會返回 APOC 的版本號。
- 你可以透過執行以下 Cypher 查詢來驗證 APOC 外掛是否安裝成功:
返回
"5.12.0"
入門的例子
我們不能到這裡就結束了,我們入門體驗一下。
資料初始化
// Create nodes for people
CREATE (alice:Person {name: 'Alice', age: 30}),
(bob:Person {name: 'Bob', age: 25}),
(carol:Person {name: 'Carol', age: 35}),
(dave:Person {name: 'Dave', age: 40});
建立關係
// 假設已經有了 Person 節點
MATCH (alice:Person {name: 'Alice'}), (bob:Person {name: 'Bob'})
CREATE (alice)-[:FRIEND]->(bob);
// 建立更多的關係
MATCH (bob:Person {name: 'Bob'}), (carol:Person {name: 'Carol'})
CREATE (bob)-[:FRIEND]->(carol);
MATCH (alice:Person {name: 'Alice'}), (carol:Person {name: 'Carol'})
CREATE (alice)-[:FRIEND]->(carol);
MATCH (carol:Person {name: 'Carol'}), (dave:Person {name: 'Dave'})
CREATE (carol)-[:FRIEND]->(dave);
APOC
CALL apoc.help('') YIELD name
RETURN name
檢視所有的方法。
expand
apoc.path.expand
引數簽名如下:
startNode
:起始節點relFilter
:關係型別過濾器labelFilter
:標籤過濾器minDepth
:最小深度maxDepth
:最大深度
在你的查詢中,你缺少了 labelFilter
引數。根據你提供的查詢,你應該新增一個空字串 ''
作為 labelFilter
引數,如下所示:
MATCH (start:Person {name: 'Alice'})
CALL apoc.path.expand(start, 'FRIEND', '', 1, 1) YIELD path
RETURN path;
這裡,我將 minDepth
設定為1,maxDepth
設定為5,這意味著你將從Alice開始,沿著 'FRIEND' 關係型別,尋找1到1跳的路徑。
labelFilter
引數設定為空字串,表示不對節點標籤進行過濾。
結果:
╒══════════════════════════════════════════════════════════════════════╕
│path │
╞══════════════════════════════════════════════════════════════════════╡
│(:Person {name: "Alice",age: 30})-[:FRIEND]->(:Person {name: "Carol",a│
│ge: 35}) │
├──────────────────────────────────────────────────────────────────────┤
│(:Person {name: "Alice",age: 30})-[:FRIEND]->(:Person {name: "Bob",age│
│: 25}) │
└──────────────────────────────────────────────────────────────────────┘
參考資料
Neo4j安裝外掛
neo4j手動安裝外掛