关于5.x版本的Neo4j与py2neo的访问技巧

先说结果。 Neo4j是可以使用py2neo来操作的。而且网上搜到的教程和方法里,首推的http连接方法可能并不是最好的,应该用 bolt 方法可能更好。

对于大多数使用 py2neo 与 Neo4j 数据库进行交互的应用程序来说,建议使用 Bolt 协议(即第二个指令)。确保您的 Neo4j 服务器配置为接受来自客户端的 Bolt 连接,并且端口号(默认为 7687)没有被防火墙或其他网络策略阻止。

  1. test_graph = Graph("http://localhost:7474/", auth=("neo4j","password"))

    这句指令使用 HTTP 协议连接到运行在本地(localhost)的 Neo4j 数据库,端口号为 7474。HTTP 是 Neo4j 早期版本中使用的一种通信协议,它通常用于 Neo4j 的 Web 界面和 REST API 访问。然而,对于使用 py2neo 的情况,HTTP 协议通常不是首选,因为它可能不支持所有的 Neo4j 功能,并且在性能上可能不如其他协议。

  2. test_graph = Graph("bolt://localhost:7687", auth=("neo4j","password"))

    这句指令使用 Bolt 协议连接到运行在本地(localhost)的 Neo4j 数据库,端口号为 7687。Bolt 是 Neo4j 的二进制协议,专为高性能和高效的数据传输而设计。它是 Neo4j 3.0 及更高版本中的默认和推荐协议,提供了更好的性能和更丰富的功能支持。

#-------------------------------------------------------------------------------------------

事情的开端是因为最近又在做知识图谱,翻之前的程序时,发现了一个问题,就是py2neo操作Neo4j就会崩,pycharm里提示的问题我也没看懂。问了百度、一言、ChatGPT,都没有得到靠谱的答案,都说可能是5.x的Neo4j不能被py2neo支持

问题很奇怪。去年我肯定是通过py2neo往Neo4j的库里更新了3万多条记录的。从命令行启动Neo4j,从浏览器查看是可以看到数据的。

实际上直到现在我也没搞明白,为啥以前的代码不能用了。问题是我没更新过Neo4j,怎么就不能用了呢?跟踪代码运行的时候,发现py2neo的 __init__.py中 


使用
test_graph = Graph("http://localhost:7474/", auth=("neo4j","password")) 
作为方法初始连接, 操作数据库时
def auto_run(self, cypher, parameters=None, graph_name=None, 
             readonly=False, # after=None, metadata=None, timeout=None )

中graph_name 是空的

换成bolt方法连接以后,就好了。

查到这位仁兄(danssion)写的挺详细,但是他说5.x不能用py2neo了,我一直觉得不对,因为我之前的确导入数据并使用了。Neo4j是可以使用py2neo来操作的。仍然要感谢danssion的梳理。

【原创】Neo4J 与 py2neo 版本关系_neo4j版本和python版本有关系吗-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

操作系统实践之路——五、初始化(2.Linux初始化)

文章目录 一、全局流程二、从BIOS到GRUB三、GRUB是如何启动的四、详解vmlinuz文件结构五、流程梳理-1六、内核初始化从_start开始七、流程梳理-2参考资料 前言 ​ 本章节将讨论一下Linux如何去做初始化。 一、全局流程 ​ 在机器加电后,BIOS 会进行自检&#xff…

Wi-Fi 7:下一代无线网络的革命性技术与特点解析

更多精彩内容在 随着无线通信的不断发展,Wi-Fi技术作为无线网络连接的重要组成部分,也在不断演进。Wi-Fi 7作为下一代无线网络标准,被认为将带来革命性的变化,提供更快速、更可靠的网络连接。本文将深入解析Wi-Fi 7的技术和特点&a…

广交会参展,一起来看看展会二维如何制作吧

展会,一直都是企业开发客户、寻找合作伙伴、拓展渠道、展示产品和技术、提升品牌知名度、行业交流的重要宣传活动。 据相关资料显示,2024年新能源行业和电子电力行业依旧是展会青睐的重点行业,分别占到统计数据的35%和38%。从举办展会的国家…

GPT-4 VS Claude3、Gemini、Sora:五大模型的技术特点与用户体验

【最新增加Claude3、Gemini、Sora、GPTs讲解及AI领域中的集中大模型的最新技术】 2023年随着OpenAI开发者大会的召开,最重磅更新当属GPTs,多模态API,未来自定义专属的GPT。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义,不亚…

如何在个人Windows电脑搭建Cloudreve云盘并实现无公网IP远程访问

文章目录 1、前言2、本地网站搭建2.1 环境使用2.2 支持组件选择2.3 网页安装2.4 测试和使用2.5 问题解决 3、本地网页发布3.1 cpolar云端设置3.2 cpolar本地设置 4、公网访问测试5、结语 1、前言 自云存储概念兴起已经有段时间了,各互联网大厂也纷纷加入战局&#…

九、C#桶排序算法

简介 桶排序是一种线性时间复杂度的排序算法,它将待排序的数据分到有限数量的桶中,每个桶再进行单独排序,最后将所有桶中的数据按顺序依次取出,即可得到排序结果。 实现原理 首先根据待排序数据,确定需要的桶的数量。…

27 OpenCV 凸包

文章目录 概念Graham扫描算法convexHull 凸包函数示例 概念 什么是凸包(Convex Hull),在一个多变形边缘或者内部任意两个点的连线都包含在多边形边界或者内部。 正式定义: 包含点集合S中所有点的最小凸多边形称为凸包 Graham扫描算法 首先选择Y方向最低…

Spring MVC(三)- 处理器与注解

Spring MVC 用Controller及RestController 注解来标志(自动扫描并注册成bean)该类是一个控制器容器类,在该类下,使用RequestMapping及其扩展注解来定义处理器。使用注解,可以定义请求的映射、请求的输入、异常处理等。 1 映射请求…

MAC 帧(数据链路层)

目录 一、MAC帧的格式 二、无效的帧 三、帧间最小间隔 四、帧的发送与接收 五、小结 一、MAC帧的格式 • 常用的以太网 MAC 帧格式有两种标准 : DIX Ethernet V2 标准; IEEE 的 802.3 标准。 • 最常用的 MAC 帧是以太网 V2 的格式。 二、…

python网络爬虫实战教学——requests的使用(1)

文章目录 专栏导读1、前言2、get请求3、抓取网页4、抓取二进制数据5、请求头 专栏导读 ✍ 作者简介:i阿极,CSDN 数据分析领域优质创作者,专注于分享python数据分析领域知识。 ✍ 本文录入于《python网络爬虫实战教学》,本专栏针对…

git push出错: src refspec dev/xxx does not match any

使用如下命令gitp push出错: git push origin 远端分支名 git push origin dev/xxxx error: src refspec dev/xxxx does not match any error: failed to push some refs to https://git.woa.com/..... 解决方案 1: git push origin 本地分支名:远端分支名 解决方案2&#…

SV-6005TP 双键网络对讲求助模块 sip对讲终端音频模块 支持POE供电 带功放输出

SV-6005TP 双键网络对讲求助模块 sip对讲终端音频模块 支持POE供电 带功放输出 一、描述 SV-6005TP模块是我司的一款壁挂式SIP双按键求助对讲模块,具有10/100M以太网接口,其接收网络的音频数据,实时解码播放,还配置了麦克风输入…

python-学习-Linux系统使用

设置变量并输出 [rootldpbzhaonan py]$ cat var01.py str1hello str2worldprintf "${str1} ${str2} \n" printf ${str1} ${str2} \n\n就是代表换行,使用printf输出的话,没有自动换行。 不使用换行如下图显示 [rootldpbzhaonan py]$ cat var0…

【RPG Maker MV 仿新仙剑 战斗场景UI (七)】

RPG Maker MV 仿新仙剑 战斗场景UI 七 法术物品窗口代码仿新仙剑效果 法术物品窗口 继续水点内容 现在发出及确认物品窗口显示及操作。 代码 function Window_BattleItem() {this.initialize.apply(this, arguments); }Window_BattleItem.prototype Object.create(Pal_Wind…

Java中的I/O讲解(超容易理解)(下篇)

如果想观看更多Java内容 可上我的个人主页关注我,地址子逸爱编程-CSDN博客https://blog.csdn.net/a15766649633?typeblog 使用工具 IntelliJ IDEA Community Edition 2023.1.4 使用语言 Java8 代码能力快速提升小方法,看完代码自己敲一遍&#xff0…

智能合约 之 ERC-20介绍

什么是ERC20 ERC20全称为Ethereum Request for Comment 20,是一种智能合约标准,用于以太坊网络上的代币发行 姊妹篇 - 如何部署ERC20 ERC20的应用场景 代币化资产,例如:USDT 是一种以美元为背书的ERC20代币,每个USDT代…

毅速解析:影响金属3D打印零件品质的几大核心因素

金属3D打印零件的品质,是众多因素交织影响下的结果。从设备到材料,从工艺到后处理,每一个环节都可能成为品质的决定因素。不同厂商之间品质的差异,往往就隐藏在这些看似细微的环节中。 首先,设备性能是决定金属3D打印零…

扩容分区和文件系统(Linux)

在ECS控制台上扩容云盘容量后,对应分区和文件系统并未扩容,您还需要进入ECS实例内部继续扩容云盘的分区和文件系统,将扩容部分的容量划分至已有分区及文件系统内,使云盘扩容生效。本文为您介绍如何通过两个步骤完成Linux实例云盘的…

HarmonyOS系统开发ArkTS入门案例及组件(三)

下一章 目录 一、声明式UI 二、ArkTs 快速入门案例 三、组件 四、渲染控制 一、声明式UI 声明式UI就是一种编写用户界面的范式或方式、 ArArkTS 在继承了Typescript语法的基础上,主要扩展了声明式UI开发相关的能力。 声明式UI开发范式大致流程:…

JavaWeb:AOP、配置优先级、Bean管理、SpringBoot原理、Maven高级

1 AOP 1.1 基本语法 面向切面编程、面向方面编程&#xff0c;面向特定方法编程 在管理bean对象的过程中&#xff0c;主要通过底层的动态代理机制&#xff0c;对特定的方法进行编程 应用&#xff1a;统计每一个业务方法的执行耗时 xml引入依赖 <!-- AOP-->&l…