NEO4J的基本使用以及桌面版NEO4J Desktop导入CSV文件

这篇具有很好参考价值的文章主要介绍了NEO4J的基本使用以及桌面版NEO4J Desktop导入CSV文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

说明

因为我也刚接触知识图谱,就是小白,本篇博客相当于一些入门级的Cypher语句的举例,然后具体说明一下NEO4J Desktop导入CSV文件是怎么实现的,以及他的一些基本操作,适合刚接触的小伙伴。如果大家对于NEO4J的配置有疑问的话可以参考文章NEO4J桌面版的配置和连接Pycharm_neo4j 桌面版-CSDN博客

基本使用方法

1.清空数据,删除之前已有的节点、关系和属性等。

match (n) detach delete n

2.展示知识图谱中所有的节点、关系和属性等。

match(n) return n

3.创建

创建节点

创建没有属性的节点

创建一个节点,其标签为学生,没有属性。

create (n:学生) 

neo4j desktop使用,neo4j,python,人工智能,知识图谱

创建包含属性的节点

n代表节点名 学生是节点的标签(label)名 姓名、年龄、性别都是属性名 ,

标签名和属性名不用引号修饰,但是属性值如果是字符串需要加引号

create (n:学生 {姓名:'周杰伦',年龄:40,性别:'男'})

neo4j desktop使用,neo4j,python,人工智能,知识图谱

创建多标签的节点

创建一个既是学生又是父亲的节点

CREATE (n:学生:父亲)

neo4j desktop使用,neo4j,python,人工智能,知识图谱

我们也可以为周杰伦参加上一个歌手的节点标签

MATCH(学生 {姓名:'周杰伦'}) set 学生:歌手 

neo4j desktop使用,neo4j,python,人工智能,知识图谱

创建关系

创建新关系
CREATE (n:埠渝)-[r:LIKES]->(m:周杰伦) 
RETURN r

如下图所示,会创建出两个新的节点 ,一个新的关系,即新节点+新关系+无属性关系

neo4j desktop使用,neo4j,python,人工智能,知识图谱

创建有属性的关系
CREATE (n:学生{姓名:"李四"})-[relation:LIKES{程度:"十分喜爱"}]->(m:老师{姓名:"唐老师"})

下图可以看到,我们新建了一条带属性的关系边。

neo4j desktop使用,neo4j,python,人工智能,知识图谱

为现有的节点添加关系
MATCH (n:学生 {姓名:'埠渝'}), (m:歌手 {姓名:'周杰伦'})
CREATE (n)-[r:likes]->(m)
RETURN n, r, m;

neo4j desktop使用,neo4j,python,人工智能,知识图谱

当然也可以增加一定的限制条件,比如说ID。这里的id要注意是自己电脑上的。

MATCH (n:学生 ), (m:歌手)
where id(m)=11 and id(n)=12
CREATE (n)-[r:DIS]->(m)
RETURN n, r, m;

neo4j desktop使用,neo4j,python,人工智能,知识图谱

4.查询

查找节点相关信息

查找节点

其中这个学生是我们要查询的节点的标签(label),where里的事节点的属性,可以用来筛选节点标签是学生中,我们要去查询的是哪一个。


match (n:学生) where n.姓名='埠渝' return n

neo4j desktop使用,neo4j,python,人工智能,知识图谱

查询节点的标签

也就是说像前面所说的,我们为周杰伦创建了两个节点标签学生和歌手,意思就是把周杰伦这个节点对应的所有标签都查询出来。

MATCH (a:学生) where a.姓名='周杰伦' RETURN labels(a)

neo4j desktop使用,neo4j,python,人工智能,知识图谱

查询节点的属性值
MATCH (a:学生) where a.姓名='埠渝' RETURN properties(a)

neo4j desktop使用,neo4j,python,人工智能,知识图谱

查询节点的属性键
MATCH (a:学生) where a.姓名='埠渝' RETURN keys(a)

这里我们可以和上边的图对应一下,就很容易理解是什么意思了。

neo4j desktop使用,neo4j,python,人工智能,知识图谱

查找与当前节点有关系的的节点

查找李四所有有关系的老师的姓名

MATCH (n:学生 { 姓名 : '李四' })-->(m:老师) 
RETURN m.姓名
neo4j desktop使用,neo4j,python,人工智能,知识图谱

查找李四所有喜欢的老师的姓名

MATCH (n:学生 { 姓名 : '李四' })-[r:LIKES]->(m:老师)
RETURN m.姓名

neo4j desktop使用,neo4j,python,人工智能,知识图谱

查找关系

查询节点间的关系

查询埠渝和周杰伦间的关系类型

match(a) where a.姓名='埠渝' match(b) where b.姓名='周杰伦' match p=(a)-[r]->(b) return type(r)

neo4j desktop使用,neo4j,python,人工智能,知识图谱

查询关系的所有属性

查询李四和唐老师之间的关系的所有属性

neo4j desktop使用,neo4j,python,人工智能,知识图谱

查询节点间关系的属性键
match(a) where a.姓名='李四' match(b) where b.姓名='唐老师' match p=(a)-[r]->(b) return keys(r)

neo4j desktop使用,neo4j,python,人工智能,知识图谱

5.删除

删除节点的所有相关关系

注意这里是没有箭头的

MATCH (n:学生{姓名:'埠渝'})-[r]-()
DELETE r

删除节点的所有外向关系

这里就是有剪头的了

MATCH ()-[r]->(n:老师{姓名:'唐老师'})
DELETE r

删除某个检点的某类关系

MATCH (n:学生{姓名:'埠渝'})-[r:LIKES]-()
DELETE r

删除实体的属性

MATCH (n:学生{姓名:'埠渝'})
REMOVE n.性别

删除所有节点和关系

MATCH (n)
OPTIONAL MATCH (n)-[r]-()
DELETE n,r

6.修改

修改节点属性

create(n:学生{姓名:'埠渝',年龄:23})
MATCH (n:学生{姓名:'埠渝'})
SET n.姓名='王哥'

修改节点标签

MATCH (n:学生{姓名:'王哥'})
REMOVE n:学生
SET n:青年

修改关系的类型

MATCH (n:学生)-[r:LIKES]-(m:歌手)
WHERE n.姓名='埠渝' and m.姓名='周杰伦'
CREATE (n)-[r2:HATES]->(m)
DELETE r

NEO4J Desktop导入CSV文件

数据准备

将数据另存为下边的这个文件格式。

neo4j desktop使用,neo4j,python,人工智能,知识图谱

放入NEO4J中

这里像这样点击找到这个import ,会打开这个文件夹,这时候我们把上边的CSV文件保存到文件夹里就可以了。

neo4j desktop使用,neo4j,python,人工智能,知识图谱

neo4j desktop使用,neo4j,python,人工智能,知识图谱

代码

打开Neo4j Browser,输入下列代码

load csv with headers from "file:///PersonD.csv" as PersonD return PersonD

输出结果如下方所示,得到文件对应的结构化信息

neo4j desktop使用,neo4j,python,人工智能,知识图谱

创建节点

通过下列代码可以将文件里的人都抽出来创建节点,节点的标签为人,节点有一个属性姓名

load csv with headers from "file:///PersonD.csv" as PersonD 
merge (A:人{姓名:PersonD.人})
return count(A)

neo4j desktop使用,neo4j,python,人工智能,知识图谱

当然,我们不用上边的代码,用下边的代码就可以把文件里所有的属性都给节点带上了。

load csv with headers from "file:///PersonD.csv" as PersonD 
merge (A:人{姓名:PersonD.人,三种人:PersonD.三种人,党员:PersonD.党员,身份证号:PersonD.身份证号码,年龄:PersonD.年龄})
return count(A)

neo4j desktop使用,neo4j,python,人工智能,知识图谱

依据CSV数据创建关系

准备数据

保存在上述所说的import文件夹里。

neo4j desktop使用,neo4j,python,人工智能,知识图谱

创建节点

分别输入下列两段代码,创建节点

load csv with headers from "file:///PersonD1.csv" as PersonD1
merge (f:公民{公民:PersonD1.公民})
return count(f)
load csv with headers from "file:///PersonD1.csv" as PersonD1
merge (B:身份{身份:PersonD1.身份})
return count(B)

结果如下图所示。

neo4j desktop使用,neo4j,python,人工智能,知识图谱

建立关系

输入下列代码,可以将身份和公民之间建立关系。

load csv with headers from "file:///PersonD1.csv" as PersonD1
MATCH (f:公民{公民:PersonD1.公民})
MATCH (B:身份{身份:PersonD1.身份})
MERGE (f)-[r:身份是]->(B)

效果图,如下。

neo4j desktop使用,neo4j,python,人工智能,知识图谱

Create和Merge的区别

Create:

  • CREATE 用于创建节点、关系或者属性,如果给定的模式已经存在,CREATE 会强制性地创建新的节点、关系或属性,即使相同的模式已经存在于数据库中。
  • 它总是创建新的模式,不管之前是否存在相同的模式。

Merge:

  • MERGE 也用于创建节点、关系或者属性,但它会首先尝试在数据库中查找给定的模式。如果找到了匹配的模式,则不会创建新的,而是将现有的模式返回。
  • 如果没有找到匹配的模式,则会创建新的模式。

总的来说:

CREATE 总是创建新的模式,而 MERGE 会先查找是否已经存在相同的模式,存在则返回,不存在则创建。在需要确保模式的唯一性时,MERGE 是一个很有用的工具,可以避免重复创建相同的节点、关系或属性。

报错

如果出现这个报错,他的原因就是你的表格里的数据他不同列的个数不一样,比如说第一列20个,第二列19个,这样的话,你去读第一列(最长的这列)时不会出错,但是去读第二列的时候就会出错,就是因为你列表里的数据不一样长。

Neo.ClientError.Statement.SemanticError Cannot merge the following node because of null property value for 文章来源地址https://www.toymoban.com/news/detail-819358.html

欢迎大家有问题在评论区打出来,或者博客有什么问题,欢迎指正。

到了这里,关于NEO4J的基本使用以及桌面版NEO4J Desktop导入CSV文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Neo4j:入门基础(二)~ 数据导入Neo4J

    neo4j导入数据的方式有以下几种: Cypher create 语句,为每一条数据写一个create Cypher load csv 语句,将数据转成CSV格式,通过LOAD CSV读取数据。 neo4j-admin import导入 官方提供的Java API - BatchInserter 大牛编写的 batch-import 工具 neo4j-apoc load.csv + apoc.load.relationship 针对实际业务场景,定制

    2024年02月09日
    浏览(58)
  • Neo4j在Ubuntu 20.04上安装、配置以及Python连接使用 - Neo4j

    1. 进入要安装neo4j的ubuntu环境。 2. 添加Debian资源库。 java 1.8.xx版本对应neo4j 3.xx版本(jdk 11版本对应neo4j 4.xx版本): (1)wget -O - https://debian.neo4j.com/neotechnology.gpg.key | sudo apt-key add - (2)echo \\\'deb https://debian.neo4j.com stable 3.5\\\' | sudo tee /etc/apt/sources.list.d/neo4j.list(或者:echo \\\'deb

    2024年02月04日
    浏览(61)
  • 使用apoc将数据从数据库导入neo4j

    1、创建实体 这段代码的目的是从 ClickHouse 数据库中加载数据到 Neo4j 图数据库,并在加载过程中使用 APOC(Awesome Procedures on Cypher)库提供的 apoc.merge.node 过程来合并数据,确保在图数据库中的节点具有唯一性。 逐行解释这段代码: CREATE CONSTRAINT uniq_law_id ON (p:Law) ASSERT p.id IS

    2024年02月21日
    浏览(79)
  • 关于Neo4j的使用及其基本命令

    进入bin目录: 先创建了两个节点: 这个关系创建完成! n代表节点,可以替换。 必须先删除关系才能删除节点:

    2024年02月07日
    浏览(61)
  • 【Neo4j教程之CQL命令基本使用】

    🚀 Neo4j 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,CSDN-Java领域优质创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验

    2024年02月11日
    浏览(52)
  • 图数据库_Neo4j学习cypher语言_使用CQL_构建明星关系图谱_导入明星数据_导入明星关系数据_创建明星关系---Neo4j图数据库工作笔记0009

    首先找到明星数据   可以看到有一个sheet1,是,记录了所有的关系的数据   然后比如我们搜索一个撒贝宁,可以看到撒贝宁的数据   然后这个是构建的CQL语句   首先我们先去启动服务 neo4j console     然后我们再来看一下以前导入的,可以看到导入很简单, 就是上面有CQL 看一下节

    2024年02月12日
    浏览(45)
  • Ubuntu20.04使用Neo4j导入CSV数据可视化知识图谱

    1.安装JDK( Ubuntu20.04 JDK11) 确认安装路径为/usr/lib/jvm/java-11-openjdk-amd64/bin/java。 2 安装Navicat查看知识库(单机版推荐数据库)(此步骤可忽略) 官网下载安装包: 手头的数据库是.db格式,使用nvicat查看。 安装好nvicat后,导入demo.db文件,将需要的数据转换成csv格式。 3 安装Neo4

    2024年04月23日
    浏览(68)
  • Neo4j导入csv文件

    Neo4j 数据库可以使用 load csv 命令从 CSV 文件中导入数据。 load csv 命令可以帮助我们导入中小型的数据,理论上大概能处理到一千万条记录。 其中,CSV文件推荐是使用 UTF-8 编码,不然就会造成中文乱码的糟糕情况。 Neo4j的配置文件是 conf 文件夹下的 neo4j.conf 文件,里面有一句

    2023年04月08日
    浏览(90)
  • Neo4j 导入CSV数据

    Neo4j 导入CSV数据 要求 必须有一个或多个 CSV 文件来表示将在图中创建的节点和关系。 必须有一个已启动的现有 Neo4j DBMS。 Neo4j 中存储为属性的数据类型 String:字符串 Long (integer values):整数值 Double (decimal values):双精度(十进制值) Boolean:布尔值 Date/Datetime:时间 Point (sp

    2024年02月03日
    浏览(47)
  • 图数据库_Neo4j的使用场景_以及Windows版Neo4j Community Server安装_欺诈检测_推荐_知识图谱---Neo4j图数据库工作笔记0003

    可以看到使用场景,比如欺诈检测, 要建立图谱,才能进行,欺诈人员检测   可以看到图谱的各种应用场景 然后推荐引擎也需要,可以看到 在金融,旅行,求职招聘,保健,服务,媒体娱乐,都可以进行推荐   然后还有知识图谱 身份访问管理,这里,可以进行安全管理,可以挖掘出潜在关系

    2024年02月12日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包