当前位置: 首页 > article >正文

什么是图数据库Neo4j

什么是图数据库Neo4j

所谓的图数据库一般由节点和关系构成,neo4j是其中的一种

在寻求数据的关联性中优于传统数据库mysql

且neo4j支持上亿级别的节点和关系

传统图运算一般在内存中进行,无法处理整个知识图谱,neo4j可以在磁盘中完成图运算

因此在问答系统中常常使用neo4j作为数据的载体,用于快速搜索关键词信息

在这里插入图片描述

创建节点:

create (n:人名{name:小明了)-[p:年龄{name:'年龄了]->(m:年龄{name:183)
在这里插入图片描述
在这里插入图片描述

展示一级关系

match p-(n)-[ ] ->(m) where n.name ='小明’return n,m

展示一级至二级间的关系

match p=(n)-[*1…2]->(m) where n.name ='习近’return n,m
在这里插入图片描述

删除节点

match p=(n) where nname =’ ’ detach delete n
在这里插入图片描述
在结点和关系数量庞大的图中,有更快的数据库操作速度

支持分布式存取,能够利用集群来扩展内存和磁盘容量

支持分布式高可用性,可以支持大规模的

数据增长数据安全可靠,支持数据的实时备份

通过Cypher语句,使得图数据的操作与展示更加直观

构建Neo4j支持格式的数据

一般数据导入至Neo4j有两种方式:

1、使用固定格式的csv进行数据加载

2、使用代码的方式将数据进行导入

两种方式各有优缺点,使用CS进行数据导入更加迅速,但相对固定:使用代码方式导入则更加灵活,相对处理速度有一定瓶颈。

使用Csv进行导入的话,一般需要两份数据,分别是entity.csv用来定义实体;relationship.csv用来描述关系,因此需要对于现有数据进行再处理。

此为entity.csv的样例
在这里插入图片描述
此为relationship.csv的样例
在这里插入图片描述

数据处理前的准备

import csv
from tqdm import tqdm
entity = open(‘entity.csv’,w’encoding=utf-8newline=“)
relationship =open(relationship.csv,wencoding='utf-8newline=”)
#开启2个记录器
entity writer = csv.writer(entity)
relationship writer = csv.writer(relationship)
#以下是neo4i所接受的两个csv,所需的列名
entity writer.writerow([:IDname:LABELT)relationship writer.writerow([:START IDname:ENDIDTYPET)

正式写数据

data = pdread csv(file name,chunksize=100000)
for ind,i in enumerate(data):
    for d in tqdm(range(len(0)):
        d = i.loc[d]
        entity writer.writerow([hash(d.实体)d.实体ENTITY)
        entity writer.writerow([hash(d.)d值ENTITYT)
        relationship writer.writerow([hash(d.实体)d.属性hash(d.)RELATIONSHIPT)
        break

http://www.kler.cn/news/17411.html

相关文章:

  • 力扣---LeetCode141/142. 环形链表 (I)和(II) (代码详解+流程图+数学逻辑拓展)
  • 自动驾驶技术:前景、优势与挑战
  • kubernetes安装
  • Docker 架构
  • Vue生命周期
  • 第二十四回:如何屏蔽事件
  • SpringMVC(后)SSM整合
  • [创新工具和方法论]-01- DOE课程基础知识
  • K8s 安全是云安全的未来
  • AI仿写软件-仿写文章生成器
  • 计算机组成原理4.2.3提高存储器访问速度的措施
  • 送了老弟一台 Linux 服务器,它又懵了!
  • Ae:橡皮擦工具
  • Redis缓存穿透和雪崩
  • 3 文件和目录
  • 归纳截图小结
  • innodb_flush_log_at_trx_commit 和 sync_binlog 参数解析
  • 数字中国建设峰会|大模型带来产业智能化新机遇
  • 【Linux0.11代码分析】03 之 setup.s 启动流程
  • C++——类和对象(3)
  • 初识 OPC
  • 05_Uboot源码目录分析
  • Java 版 spring cloud 工程系统管理 工程项目管理系统源码 工程项目各模块及其功能点清单
  • 2.压力测试+优化(Jmeter)
  • ChatGPT提示词工程(四):Inferring推断
  • MySQL基础
  • vim编辑器
  • Build生成器模式
  • (二)【平衡小车制作】电机驱动(超详解)
  • 内存越界是否一定会导致程序崩溃吗?详解内存越界