Neo4j安装部署及python连接neo4j操作

news2024/9/21 8:03:48

Neo4j安装部署及python连接neo4j操作

  1. Neo4j安装和环境配置
    安装依赖库:
    sudo apt-get install wget curl nano software-properties-common dirmngr apt-transport-https gnupg gnupg2 ca-certificates lsb-release ubuntu-keyring unzip -y
    增加Neo4 GPG key:
    curl -fsSL https://debian.neo4j.com/neotechnology.gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/neo4j.gpg
    添加Neo4j仓库:
    echo “deb [signed-by=/usr/share/keyrings/neo4j.gpg] https://debian.neo4j.com stable latest” | sudo tee -a /etc/apt/sources.list.d/neo4j.list
    更新仓库源并安装Neo4j:
    sudo apt-get update && sudo apt-get install neo4j -y
    启用Neo4j;
    sudo systemctl enable --now neo4j
    允许外部连接:
    sudo nano /etc/neo4j/neo4j.conf
    修改内容:server.default_listen_address=0.0.0.0
    重启服务:
    sudo systemctl restart neo4j
    修改系统Host文件:
    sudo nano /etc/hosts
    添加上主机的ip地址和主机名

访问主机或者服务器的7474端口,登陆neo4j
在这里插入图片描述

2.实现简单的图数据库
以Kaggle上的arXiv数据集(https://www.kaggle.com/datasets/Cornell-University/arxiv)为实验数据
下载后,文件默认为json文件(arxiv-metadata-oai-snapshot.json)
在这里插入图片描述

通过以下代码读取数据:
在这里插入图片描述

数据结构如下图所示:
在这里插入图片描述

将数据简化,留下id作为唯一索引,主要属性title、authors_parsed、categories:
在这里插入图片描述

考虑到数据庞大,测试采用在线版的Neo4j Sandbox,创建的链接可以保留3天
创建一个空白的sanbox,得到Bolt URL及其端口号:
在这里插入图片描述

利用python连接到Neo4j并将数据存储到数据库:
在这里插入图片描述
在数据库中创建约束,以确保节点不重复,并设置索引:
conn.query(‘CREATE CONSTRAINT papers IF NOT EXISTS FOR (p:Paper) REQUIRE p.id IS UNIQUE’)
conn.query(‘CREATE CONSTRAINT authors IF NOT EXISTS FOR (a:Author) REQUIRE a.name IS UNIQUE’)
conn.query(‘CREATE CONSTRAINT categories IF NOT EXISTS FOR (c:Category) REQUIRE c.category IS UNIQUE’)

创建三个函数,用于为类别和作者节点创建数据框架:
在这里插入图片描述

使用以下函数添加paper节点以及所有关系:
在这里插入图片描述

采用批处理将处理加载到neo4j中:
在这里插入图片描述
最后,在neo4j Sandbox中执行MATCH操作,得到graph,例如
MATCH (a:Author)-[:AUTHORED]->(p:Paper)-[:IN_CATEGORY]->(c:Category) RETURN a, p, c LIMIT 30
在这里插入图片描述
通过以下代码可以直接在python中进行和上面一样的MATCH查询,并返回结果:

query_string = '''
MATCH (a:Author)-[:AUTHORED]->(p:Paper)-[:IN_CATEGORY]->(c:Category) RETURN a, p, c LIMIT 30
'''
top_cat_df = pd.DataFrame([dict(_) for _ in conn.query(query_string)])
top_cat_df.head(20)

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

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

相关文章

短视频真人配音:成都科成博通文化传媒公司

短视频真人配音:情感传递的新维度 随着数字化媒体的飞速发展,短视频已经成为人们日常生活中不可或缺的一部分。而在这个视觉盛宴的时代,真人配音的加入为短视频注入了新的活力,不仅丰富了内容形式,更使得情感传递达到…

Java面试八股之Synchronized锁升级的原理

Synchronized锁升级的原理 Synchronized锁升级是Java为了提高并发性能而引入的一项优化措施,这一机制主要发生在JDK 1.6及之后的版本中。Synchronized锁升级旨在减少锁带来的性能开销,通过从低开销的锁逐步升级到高开销的锁,以适应不同的竞争…

【吊打面试官系列】Java高并发篇 - 线程的调度策略?

大家好,我是锋哥。今天分享关于 【线程的调度策略?】面试题,希望对大家有帮助; 线程的调度策略? 线程调度器选择优先级最高的线程运行,但是,如果发生以下情况,就会终止线程的运行: 1、线程体…

I.MX6ULL的蜂鸣器实验-GPIO输入实验

系列文章目录 驱动开发中引入私有数据的原因 I.MX6ULL的蜂鸣器实验-GPIO输入实验 系列文章目录一、前言二、按键输入简介三、硬件原理四、程序编写4.1主要编写内容4.2程序编写前提工作4.3编写gpio驱动模块4.4编写按键KEY驱动模块 五、编译下载验证5.1 编写 Makefile 和链接脚本…

C++ 头文件优化

C 是一种灵活的语言,所以需要一种积极的方法来分析和减少编译时依赖。一种常见的达到这个目的的方法是,将依赖从头文件里转移到源代码文件里。实现这个目的的方法叫做提前声明。 简而言之,这些声明告诉编译器某个函数接受和返回哪些参数&…

用友NC linkVoucher SQL注入漏洞复现

0x01 产品简介 用友NC是由用友公司开发的一套面向大型企业和集团型企业的管理软件产品系列。这一系列产品基于全球最新的互联网技术、云计算技术和移动应用技术,旨在帮助企业创新管理模式、引领商业变革。 0x02 漏洞概述 用友NC /portal/pt/yercommon/linkVoucher 接口存在…

YOLOv8+PyQt5鸟类检测系统完整资源集合(yolov8模型,从图像、视频和摄像头三种路径识别检测,包含登陆页面、注册页面和检测页面)

资源包含可视化的鸟类检测系统,基于最新的YOLOv8训练的鸟类检测模型,和基于PyQt5制作的可视化鸟类检测系统,包含登陆页面、注册页面和检测页面,该系统可自动检测和识别图片或视频当中出现的各种鸟类,以及自动开启摄像头…

腾盾科创无人机亮相第二十四届新疆农机博览会引发观展热潮

5月25日,第二十四届新疆农业机械博览会、2024“一带一路”智慧农业大会(以下简称新疆农机博览会)在新疆国际会展中心开幕。展会现场多种农牧业的新装备、新技术集中亮相,其中首次在新疆农机博览会上亮相的腾盾科创无人机产品引发观…

视觉语言模型详解【VLM】

视觉语言模型(Visual Language Models)是可以同时从图像和文本中学习以处理许多任务的模型,从视觉问答到图像字幕。在这篇文章中,我们将介绍视觉语言模型的主要组成部分:概述,了解它们的工作原理&#xff0…

MySQL事务篇2:InnoDB引擎

InnoDB是MySQL的默认存储引擎,支持ACID事务、行级锁定和外键约束,通过多版本并发控制(MVCC)实现高并发性能。InnoDB使用聚簇索引存储数据,具备崩溃恢复能力,确保数据一致性和完整性。其主要特性包括数据和索…

谷粒商城实战(029 业务-订单支付模块-支付宝支付2)

Java项目《谷粒商城》架构师级Java项目实战,对标阿里P6-P7,全网最强 总时长 104:45:00 共408P 此文章包含第305p-第p310的内容 代码编写 前端代码 这里使用的是jsp 在这里引用之前配置的各种支付信息 在AlipayConfig.java里 这里是调用阿里巴巴写…

【onnx问题解决】关键词:found at least two devices、torch.onnx.export

关键词:Expected all tensors to be on the same device, but found at least two devices, cpu and cuda:0! 报错: [34m[1mONNX:[0m export failure ❌ 3.8s: Expected all tensors to be on the same device, but found at least two devices, cpu an…

【R语言】获取任意颜色的HTML 颜色代码、十六进制颜色代码、 RGB代码

网站来源: https://htmlcolorcodes.com/ 界面如下所示: 通过鼠标任意选择不同的颜色,就能获取该色的十六进制代码、RGB代码等。 除此之外,还提供了一些常用颜色的便捷选项,如下: 任意选择一种颜色,即可出…

Java开发快速入门

Java执行流程分析 .java文件 **(源文件)** ---javac编译--->.class文件 **(字节码文件)** ---java运行--->结果 运行的本质: .java文件称之为源文件 .class文件称之为字节码文件 什么是编译 javac Hello.java 1. 有了java源文件, 通过编译器将其编译成JVM可以识别的…

【吊打面试官系列】Java高并发篇 - AQS 支持几种同步方式 ?

大家好,我是锋哥。今天分享关于 【AQS 支持几种同步方式 ?】面试题,希望对大家有帮助; AQS 支持几种同步方式 ? 1、独占式 2、共享式 这样方便使用者实现不同类型的同步组件,独占式如 ReentrantLock&…

C语言动态顺序表结构的创建、初始化结构、尾插、尾删、头插、头删、指定位置插入、指定位置删除、找指定数值下标等的介绍

文章目录 前言一、 结构创建二、 初始化结构三、 打印动态顺序表四、 销毁动态顺序表五、 尾插六、尾删七、 头插八、 头删九、指定位置插入十、指定位置删除十一、找指定数值下标总结 前言 C语言动态顺序表结构的创建、初始化结构、尾插、尾删、头插、头删、指定位置插入、指…

Java 实验12 线程同步与通信

(一)实验目的 1、掌握JAVA中多线程的实现方法; 2、重点掌握多线程的同步与通信机制; 3、熟悉JAVA中有关多线程同步与通信的方法 ; 4、能使用多线程机制解决实际应用中的线程同步与通信问题。 (二&…

【社会信用体系1003】 企业违规新解:社会信用环境改善的实证分析!

今天给大家分享的是来自于国内顶级期刊金融研究2023年发表论文——《社会信用环境改善降低了企业违规吗?——来自“中国社会信用体系建设”的证据》所用到的重要数据集,该文章从企业层面探讨了社会信用系统建设对企业违规行为的影响,更精准地…

Srping 历史

一、History of Spring and the Spring Framework Spring came into being in 2003 as a response to the complexity of the early J2EE specifications. While some consider Java EE and its modern-day successor Jakarta EE to be in competition with Spring, they are …

小白不知道怎么投稿?记住这个好方法

作为一名单位信息宣传员,我最初踏上这条道路时,满心憧憬着通过文字传递我们单位的精彩瞬间,让社会听见我们的声音。然而,理想与现实之间的距离,却在一次次邮箱投稿的石沉大海中渐渐清晰。那时的我,像所有“小白”一样,以为只要用心撰写稿件,通过电子邮件发给各大媒体,就能收获满…