---
# System prepended metadata

title: "[12屆 鐵人賽] [Day17]\nNeo4j Plugins - 強大的 APOC & GDS"
tags: [iT鐵人賽, Neo4j]

---

[12屆 鐵人賽] [Day17]
Neo4j Plugins - 強大的 APOC & GDS
===

###### tags: `iT鐵人賽` `Neo4j`


## 前情提要

中秋連假還有趕稿壓力也太刺激

現在躺在床上打稿，真滴舒服

前面幾篇講了 Neo4j 的查詢語法 Cypher

有效塞了七篇x

今天要來講講 Neo4j 的兩個外掛函式庫

今天會簡單介紹一下要講的兩個函式庫

之後會再各花一篇的時間，簡單抓幾個我覺得好用的功能出來演示一下

好的，讓我們開始吧

## APOC Plugins

APOC aka. `Awesome Procedures On Cypher`

是在 Neo4j Labs 開發中的一個項目

> Neo4j Labs 是 Neo4j 為圖形技術開發中的項目計集合

包含了資料整合、圖形演算、數據轉換等，許許多多不同的函式類型

由於很多功能單純使用 Cypher 會相對地難以達成

所以 APOC 函式庫以 Neo4j 底層的 Java 語法撰寫

現在已經包含了超過 400 種不同面相的函式可以使用

## GDS Library

GDS aka. `Graph Data Science`

是一個從 Neo4j Labs 中出身的 Neo4j 正式支援項目

如同它的名稱，是一個以圖形演算為主的函式庫項目

> GDS 的前身是一個簡稱 ALGO 的函式庫
> 
> 不過在 Neo4j 3.5.x 之後被 GDS 取代
>
> GDS 包含了所有 ALGO 的函式，以及其他更多的內容
>
> 現行 Neo4j 的一些官方教程有時會出現舊版的 ALGO 函式
> 
> 實際上對於現在來說就是用 GDS

## 如何使用

這些擴充的函式庫並不會預設在資料庫中

需要使用的時候就要進行安裝

安裝的方式其實很簡單

### Neo4j Desktop

![](https://i.imgur.com/cjrZMqe.png)

之前在第六篇的時候有提過在 **Manage** 裡，有個 Plugins 的選單

![](https://i.imgur.com/IhrioZ8.png)

對於 Neo4j Desktop 來說只要對你要的資料庫

按下 Install 後就可以用了

### Neo4j Server

Server 版的就比較麻煩了

你要先去抓他的輸出檔案

| [APOC Download](https://github.com/neo4j-contrib/neo4j-apoc-procedures/releases/) | [GDS Download](https://neo4j.com/download-center/) | 
| -------- | -------- | 
| ![](https://i.imgur.com/TcG4DHy.png) | ![](https://i.imgur.com/P77L4Ng.png) | 

然後把下載下來的檔案丟到，伺服器檔案目錄下的 `plugins`

![](https://i.imgur.com/Z7nCsyq.png)

再到 `conf` 目錄下的 `neo4j.conf` 去修改

先找到 `Miscellaneous configuration` 的區塊

加上

```
dbms.security.procedures.unrestricted=apoc.*,gds.*
```

![](https://i.imgur.com/2fDc4Jf.png)

這樣這些套件才算安裝成功

> 話說我沒在 Linux 版的 Server 上裝過套件，不過我猜是大同小異啦

---

今天就先這樣

真的是當學習筆記在寫欸ww

以為放假可以積稿嗎?

0 寫著寫著就睡著了

積稿什麼的跟女朋友一樣，是不存在的

下篇 **APOC Plugins - 一些小小的使用心得**

究竟鐵人賽能不能完賽呢，讓我們繼續看下去

---

## 參考資料

[Neo4j - Awesome Procedures On Cypher](https://neo4j.com/labs/apoc/)


[Neo4j - Graph Data Science](https://neo4j.com/docs/graph-data-science/current/)


## 紀錄

撰寫日期：2020/10/01
耗時： 應該在 1.5 小內