Neo4j之APOC安装与使用样例

news2024/7/6 20:53:09

1 APOC简介

APOC即Awesome Procedures on Cypher ,是 Neo4j 最大和最广泛使用的扩展库,是Neo4j过程和函数的标准实用程序库。它包括 450 多个标准程序,提供实用程序、转换、图形更新等功能。它们得到很好的支持,并且很容易作为单独的函数运行或包含在 Cypher 查询中。

2 注意事项

由于 APOC 依赖于 Neo4j 的内部 API,因此您需要为 Neo4j 安装使用匹配的 APOC 版本。确保前两个版本号在 Neo4j 和 APOC 之间匹配。以下是APOC和Neo4j版本匹配表

apoc versionneo4j version
4.4.0.14.4.0 (4.3.x)
4.3.0.44.3.7 (4.3.x)
4.2.0.94.2.11 (4.2.x)
4.1.0.104.1.11 (4.1.x)
4.0.0.184.0.12 (4.0.x)
3.5.0.153.5.30 (3.5.x)
3.4.0.83.4.18 (3.4.x)
3.3.0.43.3.9 (3.3.x)
3.2.3.63.2.14 (3.2.x)
3.1.3.93.1.9 (3.1.x)
3.0.8.63.0.12 (3.0.x)
3.5.0.03.5.0-beta01
3.4.0.23.4.5
3.3.0.33.3.5
3.2.3.53.2.3
3.1.3.83.1.5

3 安装流程

  1. 下载二进制 jar 并将其放到本地文件夹$NEO4J_HOME$/plugins下

    image-20230516113738678

    image-20230516113758133

  2. 将以下内容添加到$NEO4J_HOME$/conf/neo4j.conf文件中:

    1. 出于安全原因,默认情况下Neo4j禁用使用内部 API 。它们可以通过在$NEO4J_HOME/conf/neo4j.conf指定配置来启用)

      dbms.security.procedures.unrestricted=apoc.*
      
    2. 将apoc中一般要加载的过程和函数列入白名单 (允许运行的程序列表中)

      dbms.security.procedures.whitelist=apoc.coll.*,apoc.load.*
      

      image-20230516113945423

  3. 重启Neo4j,确认是否安装成功,如果返回APOC版本号,即为安装成功

    RETURN apoc.version() as version
    

    image-20230516114102459

4 使用apoc样例

cypher apoc中的并集函数

在APOC库中,可以使用apoc.coll.union函数执行集合的并集操作。apoc.coll.union函数用于将两个或多个集合合并为一个包含所有元素的新集合。

以下是使用apoc.coll.union函数执行集合并集操作的示例:

cypherCopy codeMATCH (p1:Person {name: 'John'})
MATCH (p2:Person {name: 'Alice'})
RETURN apoc.coll.union(p1.hobbies, p2.hobbies) AS mergedHobbies

在上述示例中,我们使用MATCH子句分别匹配名为"John"和"Alice"的"Person"节点。然后,在RETURN子句中,我们使用apoc.coll.union函数将这两个节点的"hobbies"集合属性合并为一个新的集合,并将结果命名为"mergedHobbies"。

查询结果将返回一个包含合并后兴趣爱好的列表,即这两个"Person"节点的"hobbies"集合的并集。

cypher apoc中的交集函数

在Cypher中,可以使用INTERSECTION关键字来执行集合的交集操作。INTERSECTION关键字用于找到两个或多个集合之间的共同元素。

以下是使用INTERSECTION关键字执行集合交集操作的示例:

cypherCopy codeMATCH (p1:Person {name: 'John'})
MATCH (p2:Person {name: 'Alice'})
RETURN apoc.coll.intersection(p1.hobbies, p2.hobbies) AS commonHobbies

在上述示例中,我们使用MATCH子句分别匹配名为"John"和"Alice"的"Person"节点。然后,在RETURN子句中,我们使用apoc.coll.intersection函数找到这两个节点的"hobbies"集合属性之间的共同元素,并将结果命名为"commonHobbies"。

查询结果将返回一个包含共同兴趣爱好的列表,即这两个"Person"节点的"hobbies"集合的交集。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/532098.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

超详细canal入门

我们都知道一个系统最重要的是数据,数据是保存在数据库里。但是很多时候不单止要保存在数据库中,还要同步保存到Elastic Search、HBase、Redis等等 一、什么是canal 我们先看官网的介绍 canal,译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供 增量…

MATLAB绘制动画(三)电影动画

就像是电影拍摄一样,MATLAB存储一系列图形,并将这些图像组成一个特殊的矩阵,由函数movie()播放 Z peaks; figure(Renderer,zbuffer); surfc(Z); axis tight manual; set(gca,NextPlot,replaceChildren); for j 1:20surfc(sin(2*pi*j/20)*…

【微信小程序】阶段开发总结

【微信小程序】阶段开发总结 《工欲善其事,必先利其器》 一、页面代码量过多的解决方案 最近开发的小程序页面里面包含非常多的代码,而且一个页面里面分为了很多步骤,根据不同的进度去显示不同的填写内容,因此,首先我…

Jenkins安装详细教程

Jenkins简介 Jenkins是一个开源的软件项目,是基于java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。 1.持续的软件版本发布/测试项目 2.监控外部调用执行的工作 最近…

Redis 下载安装

一、redis介绍 redis官网地址:http://www.redis.cn/ Redis是当前比较热门的NoSQL系统之一它是一个开源的、使用ANSI C语言编写的key-value存储系统(区别于MySQL的二维表格形式存储)和Memcache类似,但很大程度补偿了Memcache的不…

k8s系列-前端镜像打包集成Jenkin spush到仓库

1.General-->源码管理-->构建触发器-->构建环境-->构建-->构建后操作 General-->源码管理-->构建触发器-->构建环境-->构建-->构建后操作 General-->源码管理-->构建触发器-->构建环境-->构建-->构建后操作 General-->源码管…

阿里云ICP备案服务码在哪里申请查看?教程来了

阿里云备案服务码是什么?ICP备案服务码怎么获取?阿里云备案服务码分为免费和付费两种,申请备案服务码是有限制条件的,需要你的阿里云账号下有可用于申请备案服务码的云产品,如云服务器、建站产品、虚拟主机等&#xff…

详解C语言可变参数列表(stdarg头文件及其定义的宏)

前言:在一些函数定义时,()内的参数并不是所有的函数参数都是唯一的,如printf函数的定义 这里的省略号就代表printf函数的参数是可以变化的,而对于一些函数其参数是固定的,如strlen 之所以有这样…

Go-Benchmark入门-进阶篇(下)

接上文:Go-Benchmark入门-基础篇(上) 引言 本篇是进阶篇,围绕最佳实践,介绍项目中可能会用得上的一些技巧和科普更多的 benchmark 知识,也是对本人半个多月实践的一次总结和备忘。 go版本: …

CBA 总决赛激战正酣,线上观赛体验如何保证?

近日,许多球迷都在关注着 CBA 总决赛的激烈赛况。浙江队在征战 CBA 28 年后首次闯入总决赛,并将决赛主场放在了即将承办杭州亚运会正式比赛的奥体中心场馆,使得这轮系列赛成为了浙江篮球史上浓墨重彩的一笔。也难怪球迷现场观赛热情高涨&…

孙鑫VC++第四章 2.简单绘图-绘制

目录 1. 按键消息 2. 绘制线条 2.1 利用SDK全局函数实现画线功能 2.2 利用MFC的CDC类实现画线功能 2.3 利用MFC的CClientDC类实现画线功能 2.4 利用MFC的CWindowDC类实现画线功能 3. 在桌面窗口中画线 3.1 绘制彩色线条 4. 使用画刷绘图 4.1 简单画刷 4.2 位图画刷 …

vue+elementui+nodejs医院疫情防控管理系统3935y

语言 node.js 框架:Express 前端:Vue.js 数据库:mysql 数据库工具:Navicat 开发软件:VScode 互联网的飞速发展,使人们的生活离不开网络,医院的发展也同样是。现代医院中,不论大小都有各自的管…

想要快速开发东南亚市场?附见效快的方法

外贸人开发东南亚市场的超全指南,觉得有用的话,转发给身边的朋友哦~ 一、8大开发东南亚客户的渠道 01 外贸客户开发系统 这个是目前主流的开发客户的渠道,也是效果最好的。可以根据产品关键字、HS编码、SCI编码通过在线数据库…

使用eclipse运行DBeaver源码

一、安装eclipse(rcp) 官网地址:https://www.eclipse.org/ 1、进入官网后点击downloads 2、点击Download Packages 3、选择版本:Eclipse IDE for RCP and RAP Developers 4、选择合适的镜像进行下载 5、找到下载的文件进行解压 6、找到解压后的文件…

Netty实战(一)

Nett的概念及体系结构 第一章 Java网络编程1.1 Java NIO1.2 选择器 第二章 Netty是什么2.1 Netty简介2.2 Netty的特性2.2.1 设计2.2.2 易于使用2.2.3 性能2.2.4 健壮性2.2.5 安全性2.2.6 社区驱动 2.3 Netty的使用者2.4 异步和事件驱动2.4.1 异步2.4.2 异步和伸缩性 第三章 Net…

企业缺少成本票的三个解决方式!

业务是流程,财税是结果,税收问题千千万,关注《税算盘》来帮你找答案。 成本票指的是计入要素费用的票据,主要是指直接或是间接计入生产成本或制造费用等多方面的发票和票据。简单来说成本票,就是企业销售商品后提供服…

MyBatis Plus 插件

一、分页插件 多个插件的情况下分页插件需要放到最后执行 1.1、增加分页插件配置 package com.xx.config;import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplu…

IT项目管理工具推荐:选择最适合你的优秀工具

国际数据公司的一份报告指出,25%的IT项目彻底失败,这还不包括需要返工的50%的项目,也不包括20-25%未能提供投资回报的项目。众所周知,管理IT项目有很多挑战。以下是最常见的挑战: 1.学习曲线大 挑战: 由于I…

c#与NPOI

简介 操作指南 某些API参考 视频讲解 完整代码 1、简介 NPOI是源于一个用于读取xls,doc,ppt文档的POI 项目,POI是Java项目,后面因为有.Net的市场,于是将POI移植到.Net上。Npoi 可以在没有安装Office 的情况写 对 Word 或 Excel 文档进行读写…

《如何向ChatGPT提问并获得高质量的答案》—Prompt技术的完整指南

本教程收集于:AIGC从入门到精通教程 目录 第1章:提示工程技术简介 第2章:说明提示技术(Instructions Prompt Technique)