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

发布于:2025-03-29 ⋅ 阅读:(46) ⋅ 点赞:(0)

由于 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

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添加以下内容:

# 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,然后验证是否安装成功:

RETURN apoc.version()

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

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

1.3 简单实例

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

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

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

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如下:

dbms.security.procedures.unrestricted=algo.*,apoc.*
dbms.security.procedures.whitelist=algo.*,apoc.*

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

RETURN algo.version()

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

3.总结

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


网站公告

今日签到

点亮在社区的每一天
去签到