Neo4j【环境部署 03】插件APOC和ALGO配置使用实例分享(网盘分享3.5.5兼容版本插件)

由于 JDK 版本限制安装的 Neo4j 的版本为 3.5.5以下插件的使用都是基于这个版本的。Neo4j 及插件网盘分享:

通过网盘分享的文件:CSDN_Neo4j

链接: https://pan.baidu.com/s/107wQYy34OrjkxMUe-jGEVA?pwd=cyni 提取码: cyni

分享文件列表:

  • apoc-3.5.0.15-all.jar
  • graph-algorithms-algo-3.5.4.0.jar
  • neo4j-community-3.5.5-unix.tar.gz

插件APOC和ALGO配置使用实例

  • 1.APOC
    • [1.1 下载](#1.1 下载)
    • [1.2 配置](#1.2 配置)
    • [1.3 简单实例](#1.3 简单实例)
  • 2.ALGO
    • [2.1 下载](#2.1 下载)
    • [2.2 配置](#2.2 配置)
  • 3.总结

1.APOC

【讯飞星火】Neo4j的APOC插件是一个强大的工具,它扩展了Cypher查询语言的功能,提供了许多内置过程和函数,用于完成数据集成、图形算法或数据转换等领域的不同任务。以下是一些常见的使用场景和相应的Cypher查询示例:

  1. 文本相似度计算 :使用apoc.text.distance函数计算两个字符串之间的Levenshtein距离。例如,比较节点属性name与字符串"周"的相似度。
  2. 图算法 :使用APOC提供的图算法过程,如apoc.algo.pageRank进行PageRank计算,apoc.algo.betweennessCentrality计算中介中心性等。
  3. 数据导入导出:使用APOC的过程从CSV文件导入数据到Neo4j数据库,或将数据从Neo4j导出到CSV文件。
  4. 网络分析 :使用APOC的过程进行网络分析,如apoc.algo.centrality计算中心性指标,apoc.algo.clusteringCoefficient计算聚类系数等。
  5. 路径查找 :使用APOC的过程进行复杂的路径查找,如apoc.path.expandConfig根据配置展开路径,apoc.path.expand根据关系类型展开路径等。
  6. 数据转换:使用APOC的过程将数据从一种格式转换为另一种格式,如将JSON字符串转换为Map对象,将Map对象转换为JSON字符串等。
  7. 图可视化 :使用APOC的过程生成图的可视化表示,如apoc.graphviz.graphviz生成Graphviz格式的图表示,apoc.graphviz.dot生成DOT格式的图表示等。
  8. 机器学习 :使用APOC的过程进行机器学习任务,如apoc.ml.corex进行Corex聚类,apoc.ml.knn进行K近邻分类等。

1.1 下载

下载地址:https://github.com/neo4j-contrib/neo4j-apoc-procedures/releases,下载版本对照:

本次下载的文件为:apoc-3.5.0.15-all.jar

1.2 配置

将下载的 jar包放置于plugins文件夹下,修改配置文件 conf/neo4j.conf添加以下内容:

bash 复制代码
# A comma separated list of procedures and user defined functions that are allowed
# full access to the database through unsupported/insecure internal APIs.
#dbms.security.procedures.unrestricted=my.extensions.example,my.procedures.*

# A comma separated list of procedures to be loaded by default.
# Leaving this unconfigured will load all procedures found.
#dbms.security.procedures.whitelist=apoc.coll.*,apoc.load.*

dbms.security.procedures.unrestricted=apoc.*
# 白名单可以不配置
dbms.security.procedures.whitelist=apoc.*

修改配置文件后重启 Neo4j,然后验证是否安装成功:

cypher 复制代码
RETURN apoc.version()

// 返回结果
apoc.version()
"3.5.0.15"

// 获取函数列表
CALL apoc.help('')

1.3 简单实例

cypher 复制代码
MATCH (n)
WITH n, apoc.text.levenshteinDistance(n.name, '周王丽') AS dist
ORDER BY dist ASC
RETURN n.name, dist

对于较短的文本,编辑距离的意义不大。

使用编辑距离计算相似度(这种相似度并非语义相似度)。

cypher 复制代码
MATCH ( i1 : information )  WITH i1
MATCH ( i2 : information ) WHERE i1 <> i2 WITH i1, i2
RETURN i1.name AS from, i2.name AS to, 
apoc.math.round((1- apoc.text.levenshteinDistance(i1.content, i2.content)*1.0/apoc.coll.max([size(i1.content) ,size(i2.content)]))*100 ,2) AS similarity 
ORDER BY similarity desc

2.ALGO

【讯飞星火】Neo4j的algo插件是一个强大的工具,它提供了多种图形算法和统计过程,用于分析图数据。这些算法可以帮助你识别图中的模式、计算路径、进行社区检测等。以下是一些常见的使用场景和相应的Cypher查询示例:

  1. 最短路径算法:用于查找两个节点之间的最短路径。例如,使用Dijkstra算法找到节点A到节点B的最短路径。
  2. 中心性算法:用于评估节点在图中的重要性。例如,使用Closeness Centrality计算每个节点的中心性得分。
  3. 社区检测算法:用于发现图中的社区结构。例如,使用Label Propagation算法检测社区。
  4. 链接预测算法:用于预测节点之间可能存在的关系。例如,使用Katz算法预测两个节点之间的潜在关系。
  5. 节点相似度算法:用于计算节点之间的相似度。例如,使用Cosine相似度计算两个节点的相似度。
  6. 图匹配算法:用于在图中查找特定的子图结构。例如,使用VF2算法查找特定的子图模式。
  7. 聚类算法:用于对节点进行聚类。例如,使用K-Means算法对节点进行聚类。
  8. 降维算法:用于减少数据的维度。例如,使用PCA算法对节点属性进行降维。

2.1 下载

下载地址:https://github.com/neo4j-contrib/neo4j-graph-algorithms/releases,ALGO 没有版本对照,查看 GDS 的下载版本对照:

里边有历史版本的对照关系:Graph algorithms 3.5.14.0 is only compatible with Neo4j 3.5.9 and above. 本次下载文件为graph-algorithms-algo-3.5.4.0.jar

2.2 配置

将下载的 jar包放置于plugins文件夹下,修改配置文件 conf/neo4j.conf如下:

bash 复制代码
dbms.security.procedures.unrestricted=algo.*,apoc.*
dbms.security.procedures.whitelist=algo.*,apoc.*

修改配置文件后重启 Neo4j,然后验证是否安装成功:

cypher 复制代码
RETURN algo.version()

// 返回结果
algo.version()
"3.5.5"
cypher 复制代码
// 查询函数列表
CALL algo.list()

3.总结

有了这些插件,一些复杂的业务就可以通过调用函数实现了。

相关推荐
喜欢打篮球的普通人2 天前
MLIR快速入门
neo4j·mlir
ELI_He9993 天前
Neo4j 安装 APOC
neo4j
綮地3 天前
Neo4j 基本处理
neo4j
lzp07913 天前
Neo4j图数据库学习(二)——SpringBoot整合Neo4j
数据库·学习·neo4j
爱折腾的小码农3 天前
neo4j数据库桌面管理工具
数据库·neo4j
Wenhao.7 天前
Docker 安装 neo4j
docker·容器·neo4j
RDCJM8 天前
Neo4j图数据库学习(二)——SpringBoot整合Neo4j
数据库·学习·neo4j
机器不学习我也不学习10 天前
TensorFlow环境安装
neo4j
码农老李11 天前
vxWorks7.0 Simpc运行tensorflow lite example
人工智能·tensorflow·neo4j
马克Markorg11 天前
互联网风控系统架构实践:从数据采集到实时决策
机器学习·系统架构·图数据库·联邦学习·金融风控·实时流·风控特征