上手Neo4j (一)

简介: 上手Neo4j (一)

Neo4j是什么#

软件安装及常用的配置选项介绍#


下载#


wget https://neo4j.com/artifact.php?name=neo4j-community-3.5.3-unix.tar.gz


解压:#


tar -zxvf neo4j-community-3.5.3-unix.tar.gz


解压后进入指定目录#


drwxr-xr-x 3  187 root       4096 Feb  7  2019 bin
drwxr-xr-x 2  187 ssh_keys   4096 Sep  4 15:41 conf
drwxr-xr-x 3  187 ssh_keys   4096 Feb  7  2019 data
drwxr-xr-x 2  187 ssh_keys   4096 Feb  7  2019 import
drwxr-xr-x 2 root root       4096 Sep  4 15:41 lib
-rw-r--r-- 1  187 ssh_keys 141211 Feb  7  2019 LICENSES.txt
-rw-r--r-- 1  187 ssh_keys  36005 Feb  7  2019 LICENSE.txt
drwxr-xr-x 2  187 ssh_keys   4096 Feb  7  2019 logs
-rw-r--r-- 1  187 ssh_keys   6546 Feb  7  2019 NOTICE.txt
drwxr-xr-x 2  187 ssh_keys   4096 Sep  4 15:41 plugins
-rw-r--r-- 1  187 ssh_keys   1596 Feb  7  2019 README.txt
drwxr-xr-x 2  187 ssh_keys   4096 Feb  7  2019 run
-rw-r--r-- 1  187 ssh_keys     96 Feb  7  2019 UPGRADE.txt


配置环境变量#


vim /etc/profile
追加以下内容
后面的 路径是neo4j的解压路径
export NEO4J_HOME=/home/changwu/neo4j-community-3.5.3
添加path
export PATH=$PATH:$NEO4J_HOME/bin


修改neo4j的配置文件,使其启动起来/conf/neo4j.conf#


分配内存
dbms.memory.heap.initial_size=1024m
dbms.memory.heap.max_size=1024m
# 修改54行,去掉改行的#,可以远程通过ip访问neo4j数据库
dbms.connectors.default_listen_address=0.0.0.0
# 默认 bolt端口是7687
# 端口可以自定义,别忘了去 安全组中开放这个端口
dbms.connector.bolt.listen_address=:9999
# 默认通过http访问的端口是7474, 开放这个端口,可以在浏览器打开
# HTTP Connector. There can be zero or one HTTP connectors.
dbms.connector.http.enabled=true
dbms.connector.http.listen_address=:9998


启动命令#


[root@ecs-t6-large-2-linux-20190824103606 bin]# ./neo4j
Usage: neo4j { console | start | stop | restart | status | version }


概念名词#


Label#


label 相当于数据库中的表, 比如有一个Label="Person" 代表一类节点

Node#


node 节点, 也叫它定点,每一个节点都代表一个对象, 相当于数据表中的一行数据

节点可以有若干个属性来描述自己


relation#


relation 关系,也叫做边,有类型,带方向

  • 有类型:表示节点之间的关系可以有多种, 比如 朋友关系, 上下级关系
  • 带方向:表示节点之间的关系可以是单向的, 也可以是双向的, 注意在创建节点的关系时,必须指定方向性,否则会报错,但是在查询时,如果不指定方向,默认会查询双向的关系


id#


每个节点,关系,都有系统自动分配的id,从0开始,全局唯一

如果我们手动创建一个node,然后指定它的id=1, 我们自己指定的id是属性, 与系统默认的id无关


create(Person{  id : '1' } )


通过id函数,可以获取出node的id值


match (n:Person{id:'erzi'}) return id(n)


Index#


如果未来会频繁的根据node的某一个属性查询节点, 考虑为node的这个属性添加一个索引(不需要给index取名字),为了更强的性能


  • 创建索引


create index on :Person(id)


  • 删除索引


drop    index on :Person(id)


  • 查询


// where in = < >  substring 都会走索引
explain match (n:Person) where n.id=2008  return n


注意点: 如果是给某一个字段创建了索引,那么查询这个字段是会扫描索引然会返回这个node, 但是,如果是给某一个字段创建索引后查询一个label下的全部节点,依然会走全表扫描


创建了索引的属性,自带唯一性的约束


consiraint 唯一性约束#


  • 添加唯一约束


create constraint on (a:Person) Assert a.id is unique
Assert a.id is unique


  • 删除唯一约束


drop constraint on (a:Person) Assert a.id is unique



相关文章
|
9月前
|
SQL NoSQL 算法
Neo4j极简教程
图数据库是NoSQL类数据库的一大典型代表,在国内图数据库属于新兴事物,其优异的复杂关系解决方案引起了国内众多大型互联网公司及IT开发者的关注,而Neo4j是目前图形化数据库中最为出色、最为成熟的产品。
603 0
Neo4j极简教程
|
4月前
|
存储 NoSQL 容灾
Neo4j【环境部署 01】图形数据库(简介+下载地址+安装+配置+demo源码+学习教程地址)
Neo4j【环境部署 01】图形数据库(简介+下载地址+安装+配置+demo源码+学习教程地址)
105 1
|
6月前
|
SQL NoSQL MongoDB
软件开发入门教程网之Python MongoDB
软件开发入门教程网之Python MongoDB
45 0
|
11月前
|
SQL 数据可视化 NoSQL
|
11月前
|
NoSQL 数据可视化 Java
我的Neo4j探索之旅 - 初识Neo4j(一)
neo4j 这个东西在国内用的很少,目前能百度的资料也是很早之前的几篇了,我针对neo4j 3.5 的版本进行一次学习和记录,以及实际的工作需求我也遇到了,后续会开源一个剔除业务的开源项目,有兴趣的读者可以了解一下图数据库的中间件,还是蛮有意思的。
212 0
|
11月前
|
机器学习/深度学习 SQL 数据库
NEO4J的入门和一些简单的操作
> 持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第29天,[点击查看活动详情](https://juejin.cn/post/7147654075599978532 "https://juejin.cn/post/7147654075599978532") # 引言 今天我们继续学习NEO4J. # 创建 创建语句我们一般会使用create指令 我们首先在控制台上输入`neo4j.bat console`启动neo4j 然后打开你的浏览器,然后在浏览器地址栏中输入 `http://localhost:7687 - Neo4j Browser](http:
|
12月前
|
存储 NoSQL Java
Neo4j学习笔记(一) 安装配置
Neo4j学习笔记(一) 安装配置
458 0
|
存储 缓存 NoSQL
Neo4J 2|学习笔记
快速学习 Neo4J 2
307 0
Neo4J 2|学习笔记
|
SQL NoSQL Oracle
Neo4J 介绍及安装|学习笔记
快速学习 Neo4J 介绍及安装
510 0
Neo4J 介绍及安装|学习笔记
|
存储 SQL NoSQL
Neo4j 学习笔记(一) 初遇篇
Neo4j 学习笔记(一) 初遇篇
Neo4j 学习笔记(一) 初遇篇