美文网首页
neo4j的简单介绍和使用

neo4j的简单介绍和使用

作者: 傻疯子 | 来源:发表于2022-01-07 22:58 被阅读0次

neo4j是一个将结构化数据存储为图的图数据库,可以快速查询多个事物之间的关系及其关系链。

图是由点(Vertex),边(Edge)和属性(Property)组成的,点和边都可设置属性,点是节点,边是两个节点之间的关系。

使用

用docker测试

docker pull neo4j
docker run -it -d -p 7474:7474 -p 7687:7687 neo4j:latest

添加数据

创建点:

//创建两个节点,会重复创建
create (p1:Person {name:"zhangsan"})
create (p2:Person {name:"lisi"})

创建边

//创建两个节点的同时建立关系
create (p1:Person {name:"zhangsan"}) -[:friend]-> (p2:Person {name:"lisi"})

//创建两个不存在的节点同时建立关系
//merge类似于create if not exist,同时会将这两个节点的变量赋值到p3,p4
//将p3,p4建立连接关系。
merge(p3:Person {name:"wangwu"})
merge(p4:Person {name:"zhaoliu"})
merge(p3) -[:classmate]->(p4)

对存在的节点创建边

//将查到的点赋值到a,b两个变量中并建立连接关系。
match(a:Person {name:"zhangsan"}),(b:Person {name:"lisi"})  
merge(a)-[:neighbor]->(b)
查询数据

match可以连接为查询
查询节点

//返回name为zhangsan的Person
match(p:Person {name:"zhangsan"}) return p

根据连接关系查询

//查询zhangsan的neighbor
match (:Person {name:"zhangsan"}) -[:neighbor]-> (p:Person) return p

这里return p相比sql语句,将select换为return,省去from,需要where的情况需要把它写在return前面.
类似于where (condition) return (field) ,(aggregate) (order by field) (limit n)

更新数据

修改节点的属性

//获取节点对象,并用set修改
match (p:Person {name:"zhangsan"}) set p.age= 100

删除连接关系

//获取关系对象,最后用delete删除
match (:Person {name:"zhangsan"}) -[r:neighbor]-> (:Person {name:"lisi"}) delete r
建立索引

需要用where筛选进行查询的用第一种,需要建立唯一约束的用第二种
CREATE INDEX ON :Person(name)
CREATE CONSTRAINT ON (p:Person) ASSERT p.id IS UNIQUE

批量导入

可以用batch import和load csv
其中load csv可以参考以下内容

//将文件放到import/目录下
//连接neo4j
bin/cypher-shell -a bolt://localhost:7687 -u neo4j -p admin
neo4j>CREATE CONSTRAINT ON (p:Person) ASSERT p.name IS UNIQUE

neo4j>USING PERIODIC COMMIT 1000
       LOAD CSV WITH HEADERS FROM 'file:///person_relation.log' AS line FIELDTERMINATOR '\t'
       MERGE (a:Person { name: toString(line.nameA)})
       MERGE (b:Person { name: toString(line.nameB)})
       MERGE (a)-[:neighbor]->(b);

相关文章

  • docker + NoSQL图数据Neo4j + springb

    介绍NoSQL 介绍Neo4j 安装docker 使用docker 安装Neo4j 入门 Neo4j spring...

  • neo4j的简单介绍和使用

    neo4j是一个将结构化数据存储为图的图数据库,可以快速查询多个事物之间的关系及其关系链。 图是由点(Vertex...

  • Neo4j的简单介绍

    在构建知识图谱的时候,Neo4j用来建立实体之间的关系非常方便,下面简单介绍一下它的使用方法: Neo4j数据库可...

  • Neo4j的算法库安装和调用说明(algo)

    上一文中,进行了Neo4j的图算法的简单介绍,展现Neo4j存的大量优秀的算法。默认不支持,如果通过插件安装来使用...

  • 20200708 - 初步使用

    2020/07/08 - 引言 本篇文章我来简单介绍一下怎么利用python来使用这个neo4j,不涉及具体原理,...

  • Neo4j属性图模型简单介绍

    本文主要是对Neo4j属性图模型简单的介绍。 Neo4j是什么? Neo4j是一款是由java语言实现的图数据库,...

  • neo4j:Cypher查询入门(三)

    neo4j使用使用Cypher查询图形数据,Cypher是描述性的图形查询语言,语法简单,功能强大。 和SQL很相...

  • Neo4j安装及配置

    本文介绍的是一款使用java开发的图数据库Neo4j入门安装以及Neo4j的基本配置。 安装环境: 在linux下...

  • 图数据库Neo4j的安装

    简述 因为工作的需要,学习了图数据库Neo4j的基本用法。下面简单介绍下图数据库Neo4j的社区版在Linux 系...

  • Neo4j简单介绍

    1.什么是Neo4j? Neo4j是一个高性能的,NOSQL数据库,它将结构化数据存储在网络上而不是表中。它是一个...

网友评论

      本文标题:neo4j的简单介绍和使用

      本文链接:https://www.haomeiwen.com/subject/hjbjcrtx.html