首页 > 数据库 >Neo4j APOC-01-图数据库 apoc 插件介绍

Neo4j APOC-01-图数据库 apoc 插件介绍

时间:2024-12-03 11:54:26浏览次数:4  
标签:插件 01 RETURN APOC CALL path Neo4j apoc

neo4j apoc 系列

Neo4j APOC-01-图数据库 apoc 插件介绍

Neo4j APOC-01-图数据库 apoc 插件安装 neo4j on windows10

Neo4j APOC-03-图数据库 apoc 实战使用使用

Neo4j APOC-04-图数据库 apoc 实战使用使用 apoc.path.spanningTree 最小生成树

neo4j 的 apoc

Neo4j 的 APOC(Awesome Procedures on Cypher)是一个非常强大的 Neo4j 插件,它扩展了 Cypher 查询语言的功能,提供了大量的实用函数和存储过程,极大地增强了 Neo4j 的功能性。

APOC 适用于需要更复杂数据处理和操作的场景,支持各种数据转换、图算法、数据导入/导出、集成外部系统等操作。

1. APOC 的基本功能

APOC 插件包含了以下几类常用功能:

  • 数据转换和处理

    • 支持各种图数据的转换,例如将节点和关系转换为其他格式(JSON、CSV 等),以及对图的结构和数据进行各种操作(过滤、聚合、排序等)。
    • 提供了对集合、字符串、日期等数据类型的操作函数。
  • 图算法

    • APOC 提供了许多图算法(如最短路径、中心度、PageRank 等),虽然 Neo4j 本身也有图算法库(Graph Data Science),但是 APOC 是一个更加轻量级的选择,适用于简单的图分析任务。
  • 存储过程

    • 提供了丰富的存储过程,例如批量数据插入、更新、删除、导入导出等。
    • 支持对图数据库的各种操作进行封装,并简化复杂操作。
  • 与外部系统的集成

    • APOC 支持通过 HTTP 访问外部 REST API,或者与文件系统交互(如上传、下载文件),以便集成外部数据源。
    • 也支持与外部数据库的连接,如导入其他数据库的数据到 Neo4j。

总结

APOC 是一个功能丰富且灵活的 Neo4j 插件,它为 Cypher 查询语言提供了大量实用的扩展,涵盖了数据处理、图算法、外部系统集成等方面。

通过使用 APOC,开发者可以大大提高图数据库的操作效率和灵活性,尤其是在复杂的数据处理和分析任务中。

apoc 常用的功能

下面是一些常用的 APOC 插件功能和示例

功能 存储过程/函数 描述 示例
数据转换 apoc.convert.toJson() 将节点、关系或任何图数据结构转换为 JSON 格式 MATCH (n:Person) RETURN apoc.convert.toJson(n)
集合操作 apoc.coll.flatten() 将嵌套的集合扁平化 RETURN apoc.coll.flatten([[1, 2], [3, 4]])
apoc.coll.sum() 计算集合中所有元素的和 RETURN apoc.coll.sum([1, 2, 3, 4])
apoc.text.join() 将集合中的元素连接成一个字符串 RETURN apoc.text.join(['a', 'b', 'c'], ',')
图算法 apoc.algo.shortestPath() 计算两个节点之间的最短路径 MATCH (start:Person {name: 'Alice'}), (end:Person {name: 'Bob'}) CALL apoc.algo.shortestPath(start, end, 'KNOWS') YIELD path RETURN path
apoc.algo.dijkstra() Dijkstra 算法计算最短路径 MATCH (start:Person {name: 'Alice'}), (end:Person {name: 'Bob'}) CALL apoc.algo.dijkstra(start, end, 'KNOWS') YIELD path RETURN path
导入/导出数据 apoc.import.csv() 从 CSV 文件导入数据 CALL apoc.import.csv('file:///path/to/file.csv', {header:true}) YIELD nodes, relationships RETURN nodes
apoc.export.csv.all() 将所有图数据导出为 CSV 文件 CALL apoc.export.csv.all('file:///output.csv', {})
apoc.load.csv() 从 CSV 文件中加载数据 CALL apoc.load.csv('file:///path/to/file.csv') YIELD map RETURN map
apoc.load.json() 从外部 URL 加载 JSON 数据 CALL apoc.load.json('http://example.com/data.json') YIELD value RETURN value
外部系统集成 apoc.load.xml() 从外部 URL 加载 XML 数据 CALL apoc.load.xml('http://example.com/data.xml') YIELD value RETURN value
apoc.load.http() 通过 HTTP 请求获取外部数据 CALL apoc.load.http('http://example.com/api') YIELD value RETURN value
日期和时间处理 apoc.date.convert() 将日期时间字符串转换为时间戳 RETURN apoc.date.convert('2024-11-01T12:00:00', 'ISO_8601', 'milliseconds')
图数据操作 apoc.create.node() 创建节点并为其设置属性 CALL apoc.create.node(['Person'], {name: 'Alice', age: 30}) YIELD node RETURN node
apoc.create.relationship() 创建关系并设置属性 MATCH (a:Person {name: 'Alice'}), (b:Person {name: 'Bob'}) CALL apoc.create.relationship(a, 'KNOWS', {since: 2020}) YIELD rel RETURN rel
事务和批量操作 apoc.periodic.iterate() 按批次进行迭代处理 CALL apoc.periodic.iterate('MATCH (n:Person) RETURN n', 'SET n.processed = true', {batchSize: 1000}) YIELD batches, total RETURN batches, total
性能监控与统计 apoc.stats() 返回数据库的统计信息 RETURN apoc.stats()
路径和图遍历 apoc.path.expand() 扩展路径,获取指定节点的邻居 MATCH (a:Person {name: 'Alice'}) CALL apoc.path.expand(a, 'KNOWS', 1) YIELD path RETURN path
apoc.path.subgraphNodes() 获取路径的子图节点 MATCH (a:Person {name: 'Alice'}) CALL apoc.path.subgraphNodes(a, {relationshipFilter: 'KNOWS'}) YIELD node RETURN node
字符串处理 apoc.text.split() 按指定分隔符将字符串分割成多个部分 RETURN apoc.text.split('a,b,c,d', ',')
apoc.text.replace() 在字符串中进行替换操作 RETURN apoc.text.replace('Hello World', 'World', 'Neo4j')

这些功能覆盖了图数据库的许多常见操作,如数据转换、导入导出、图算法、路径计算等,能够有效扩展 Neo4j 的使用场景。

参考资料

https://www.cnblogs.com/liaozk/p/17138133.html

https://www.w3cschool.cn/neo4j/neo4j_cql_introduction.html

标签:插件,01,RETURN,APOC,CALL,path,Neo4j,apoc
From: https://www.cnblogs.com/houbbBlogs/p/18583793

相关文章

  • 高等教育自学考试_中国税制试题(课程代码:00146)_历年自考试题
     2024年4月高等教育自学考试_中国税制试题(课程代码:00146)-自考题库2023年10月高等教育自学考试_中国税制试题(课程代码:00146)-自考题库2023年4月高等教育自学考试_中国税制试题(课程代码:00146)-自考题库2022年10月高等教育自学考试_中国税制试题(课程代码:00146)-自......
  • 39. css_01
    1.css的概念CSS(CascadingStyleSheets,层叠样式表)是一种用于描述HTML文档的表现形式的样式语言。它被设计用于将网页的内容与表现形式分离,可以控制网页的外观和布局,包括间距、颜色、字体等视觉元素,而不需要直接修改HTML的结构。2.语法结构选择符{样式属性:样式属性值......
  • jQuery简单实用的响应式固定侧边栏插件
    Bamboo.js是一款简单实用JQUERY响应式固定侧边栏插件。该插件使用简单固定侧边栏结构,带有固定位置的标题,侧边栏不会随页面而滚动。你可以为创建设置一个breakpoint,当屏幕尺寸小于这个breakpoint的时候侧边栏会隐藏,同时显示一个汉堡图标作为菜单的导航图标。演示  下载 使......
  • PbootCMS模板后台编辑器无法上传图片,提示“后端配置项没有正常加载,上传插件不能正常使
    当您在使用PbootCMS模板后台编辑器时,如果遇到无法上传图片,并且提示“后端配置项没有正常加载,上传插件不能正常使用!”的问题,通常是由于后端配置项返回格式出错导致的。以下是详细的解决步骤:检查时区设置:这个问题的一个常见原因是时区设置不正确。在Linux环境下,时区设置是区分......
  • 操作系统、虚拟化技术与云原生01
    操作系统基础操作系统定义OS声明了软件怎么调用硬件,同时支持人机交互人机交互的过程:shell是人机交互转换的虚拟环境,内核只能识别0、1组成的数据流,底层资源只能识别电流的变化操作系统的组成1.进程管理进程定义:进程是正在运行的程序的实例,它不仅包含程序代码,还包......
  • jQuery轻量级Lightbox插件-Colorbox
    演示       下载 ColorBox是一款功能强大的轻量级Jquery Lightbox插件。ColorBox支持图片展示、图片分组、幻灯片、行内样式和iframe内容。该lightbox插件的兼容性极好,可以兼容IE7+的IE浏览器。它的特点有:支持图片展示、图片分组、幻灯片、行内样式和ifram......
  • 抽象代数-01-代数的基本概念
    加氏积设\(A_1\)\(A_2\)\(\cdots\)\(A_n\)是N个集合,一切从中顺序取出的元素组\((a_1,a_2,\cdots,a_n)\),\(a_i\inA_i\),所组成的集合叫做集合\(A_1\)\(A_2\)\(\cdots\)\(A_n\)的加氏积,记为\(A_1\timesA_2\times\cdots\timesA_n\)映射设\(A,B\)是两个非空集合,如果存在......
  • CS61B srping 2018 examprep01(?02) https://sp18.datastructur.es/
    1.写出第21、24行的运行结果。(画出box-pointer指示图会对答题很有帮助)1publicclassShock{2publicstaticintbang;3publicstaticShockbaby;4publicShock(){5this.bang=100;6}7publicShock(intnum){8this.bang=num;9baby=starter();10this......
  • COMP1001J Playing Grid
    100 989796959493929181828384858687  9080  7877 7574737体7161 58545765 67686970605956955 5352  5141......
  • 【Unity 插件】Visual State Machine 通过图形化的界面帮助开发者设计和管理复杂的状
    VisualStateMachine是一款用于Unity编辑器中的插件,旨在通过图形化的界面帮助开发者设计和管理复杂的状态机逻辑。它为Unity提供了一个直观的拖拽式状态机系统,可以用来控制角色行为、AI、动画、UI交互等各种状态转换。主要特点:图形化界面:使用拖拽式界面来创建和管理......