首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

知识图谱基本工具Neo4j使用笔记 五 :APOC插件安装及简单应用

  • 25-02-17 10:20
  • 2516
  • 12827
blog.csdn.net

文章目录

  • 一、APOC经典使用场景
  • 二、APOC所在系统说明
  • 三、APOC详细配置安装
    • 1. APOC插件下载
    • 2. APOC的相关文件下载说明
    • 3. APOC与图数据库neo4j的版本对应
    • 4. APOC在本机安装位置
    • 5. 修改APOC的配置文件
    • 6. 配置APOC的注意问题
    • 7. web端启动:测试APOC是否安装成功
  • 四、APOC的一些经典应用
    • 1. 编辑距离
    • 2. 基于编辑距离的相似度
    • 3. 模糊匹配
    • 4. 链接数据库

一、APOC经典使用场景

APOC(Awesome Procedures on Cypher)是Neo4j图数据库的一个插件,它提供了一组强大的过程和函数,扩展了Cypher查询语言的功能。APOC可以帮助你进行更高级的数据处理和操作,例如导入和导出数据、动态创建节点和关系、执行事务操作等。

使用APOC插件需要先下载并安装它,然后在Neo4j的配置文件中启用它。一旦启用,你就可以在Cypher查询中使用APOC提供的各种过程和函数了。

我这里主要是想使用,APOC中的相似度查询功能.

  1. APOC(Awesome Procedures on Cypher)是一个用于扩展Neo4j图数据库的插件,它为开发人员提供了一些非常有用的功能和过程。APOC通过增加超过450个过程来扩展了Cypher查询语言的功能。这些过程可以用于数据转换、导入/导出、字符串处理、时间处理、密码学等。使用APOC,您可以更轻松地进行复杂的数据操作和分析。
  2. APOC提供了更高级的图算法和数据科学功能。它包括社区发现、路径分析、相似性计算等算法。这些功能可以帮助您深入探索图数据并从中获得洞察力。
  3. APOC由Neo4j的社区成员开发和维护,是一个开源项目。它得到了全球范围内的开发者社区的积极贡献和支持。
  4. 使用APOC插件的好处很多。它可以大大简化开发过程,节省大量的时间和精力。它还可以提供更丰富的功能和工具,以解决实际问题。此外,由于APOC是开源的,所以您可以根据自己的需求进行定制和扩展。
  5. APOC是一个强大而灵活的Neo4j插件,可以在生产开发中提供许多好处,帮助您更轻松地处理图数据和进行数据分析。

二、APOC所在系统说明

操作系统; window 11
neo4j版本:neo4j-community-4.4.23
APOC 版本:apoc-4.4.0.3-all.jar

三、APOC详细配置安装

1. APOC插件下载

github下载地址

比较推荐这个方法:
第三方下载地址(推荐使用)

2. APOC的相关文件下载说明

在这里插入图片描述
apoc插件分为两种,一个是core核心版,一个是 all 豪华本。另外,apoc插件本身也是需要和neo4j的版本号一一对应的,两者是需要版本兼容的关系。

我这里使用的是 :apoc-4.4.0.3-all.jar

3. APOC与图数据库neo4j的版本对应

在这里插入图片描述
版本不对应,大概率,neo4j 服务启动不起来。提示 版本问题

4. APOC在本机安装位置

将下载的 apoc-4.4.0.3-all.jar 直接复制到这个文件夹 就行

在这里插入图片描述

5. 修改APOC的配置文件

打开配置文件将,这两行内容,注释去掉就行了

dbms.security.procedures.unrestricted=apoc.*
  • 1

将apoc中一般要加载的过程和函数列入白名单 (允许运行的程序列表中)

dbms.security.procedures.allowlist=apoc.coll.*,apoc.load.*
  • 1

在这里插入图片描述

这里因为需要 还有有其他的配置,这个配置就 根据需要来进行配置就行

6. 配置APOC的注意问题

正常情况情况下,配置到第五步就结束了,大概率配置成功了、但是我正好是不幸运的一拨人。配置到第五步 启动:RETURN apoc.version() 出现了

Neo.ClientError.Statement.SyntaxError
Invalid input '​': expected <init> (line 1, column 1 (offset: 0))
"​RETURN apoc.version();"
 ^
  • 1
  • 2
  • 3
  • 4

解决方法:就是 第 5 步图片中的那样子。

把这一行内容 : dbms.security.procedures.allowlist=apoc.coll.*,apoc.load.* 注释掉

7. web端启动:测试APOC是否安装成功

在这里插入图片描述

配置成功

四、APOC的一些经典应用

1. 编辑距离

RETURN apoc.text.distance("手提包包女新款潮韩版时尚尼龙布单肩包休闲简约斜挎包妈妈包", "新款女士手提包韩版大容量菱格牛津手提斜挎包多功能大容量单肩包")
  • 1
RETURN apoc.text.levenshteinDistance("手提包包女新款潮韩版时尚尼龙布单肩包休闲简约斜挎包妈妈包", "新款女士手提包韩版大容量菱格牛津手提斜挎包多功能大容量单肩包")
  • 1

2. 基于编辑距离的相似度

RETURN apoc.text.levenshteinSimilarity("手提包包女新款潮韩版时尚尼龙布单肩包休闲简约斜挎包妈妈包", "新款女士手提包韩版大容量菱格牛津手提斜挎包多功能大容量单肩包")
  • 1

3. 模糊匹配

RETURN apoc.text.fuzzyMatch("手提包包女新款潮韩版时尚尼龙布单肩包休闲简约斜挎包妈妈包", "新款女士手提包韩版大容量菱格牛津手提斜挎包多功能大容量单肩包")
  • 1
  1. 数据导入和导出:使用APOC插件可以轻松导入和导出不同格式的数据到Neo4j图数据库。您可以将数据从关系型数据库、CSV文件、JSON等转换为图形数据,并相反地,将图形数据导出到其他格式。
  2. 图形算法:APOC提供了许多有用的图形算法,如PageRank、社区发现(例如Louvain算法),路径分析等。这些算法可以帮助您发现数据之间的关联性和模式,并从中提取有价值的信息。
  3. 数据清洗和转换:APOC提供了丰富的过程和函数,用于数据清洗和转换。您可以使用它来处理字符串、时间、密码学等方面的数据,并进行必要的清洗和格式化。
  4. 可视化:APOC支持将图形数据转换为其他可视化工具所需的格式,例如Gephi、D3.js等。这使得您可以将您的图形数据以更直观的方式呈现,进一步探索和交流。
  5. 地理空间分析:APOC提供了与地理空间数据相关的功能,如计算两个地点之间的距离、查找附近的地点等。这对于在地理空间上分析和查询数据特别有用。

4. 链接数据库

要在Python中使用APOC插件,首先需要确保已经安装了Neo4j和APOC插件。安装Neo4j可以参考官方文档(https://neo4j.com/docs/)。一旦安装完成,您可以使用Python的Neo4j驱动程序来连接到Neo4j数据库,并执行Cypher查询来调用APOC过程。
一个简单的示例代码,演示如何使用Python和Neo4j驱动程序执行APOC过程:

from neo4j import GraphDatabase

# 连接到Neo4j数据库
driver = GraphDatabase.driver("bolt://localhost:7687", auth=("neo4j", "password"))

# 执行查询并调用APOC过程
def run_query(query):
    with driver.session() as session:
        result = session.run(query)
        return result

# 调用APOC过程
query = "CALL apoc.someProcedure()"
result = run_query(query)

# 处理结果
for record in result:
    # 在这里进行结果处理
    print(record)

# 关闭驱动程序连接
driver.close()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
注:本文转载自blog.csdn.net的QuietNightThought的文章"https://blog.csdn.net/shdabai/article/details/132880323"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top