Neo4j APOC-01-圖資料庫 apoc 外掛 windows10 安裝

老马啸西风發表於2024-12-03

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-apoc

發現不太行,一直安裝無響應。

步驟:

  1. 開啟 Neo4j Desktop 應用。
  2. 在左側的 Projects 皮膚中,選擇你要使用的 Database,然後點選該資料庫旁邊的 Settings 按鈕(齒輪圖示)。
  3. 在彈出的設定頁面中,找到 Plugins 選項卡。
  4. 在外掛列表中,找到 APOC 外掛。如果沒有顯示,請確保 Neo4j Desktop 已連線到網際網路。
  5. 點選 Install 按鈕安裝 APOC 外掛。安裝完成後,它將自動啟用。
  6. 安裝完成後,你可以在 Database 皮膚中看到 APOC 外掛已啟用。

3. Neo4j 伺服器版安裝 APOC 外掛

對於自託管的 Neo4j 伺服器,安裝 APOC 外掛需要手動操作。

你需要將 APOC 外掛檔案放入 Neo4j 的外掛目錄,並修改配置檔案來啟用它。

參考文件:https://neo4j.com/docs/apoc/5/overview/

步驟:

  1. 下載 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

  1. 將 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
  1. 修改 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

比如我的是在 :

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.*

  1. 重啟 Neo4j

    • 儲存配置檔案並重啟 Neo4j 伺服器。你可以透過命令列重啟 Neo4j:
      • 對於 Linux/macOS:
        sudo systemctl restart neo4j
        
      • 對於 Windows,使用 Neo4j Desktop 或服務管理工具進行重啟。
  2. 驗證安裝

    • 你可以透過執行以下 Cypher 查詢來驗證 APOC 外掛是否安裝成功:
      RETURN apoc.version()
      
    • 如果安裝成功,它會返回 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手動安裝外掛

相關文章