博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
neo4j开发
阅读量:7084 次
发布时间:2019-06-28

本文共 4289 字,大约阅读时间需要 14 分钟。

hot3.png

第一部分 安装

----------------------------------------------------
步骤一:安装neo4j
[root tmp]# cd /tmp  
[root tmp]# wget http://debian.neo4j.org/neotechnology.gpg.key  
[root tmp]# rpm --import neotechnology.gpg.key  
[root tmp]# cat <<EOF > /etc/yum.repos.d/neo4j.repo  
> [neo4j]  
> name=Neo4j Yum Repo  
> baseurl=http://yum.neo4j.org/stable  
> enabled=1  
> gpgcheck=1  
> EOF  

[root tmp]# yum install neo4j  -y  

步骤二:启动Neo4j

[root@iii tmp]# neo4j --help   
Usage: neo4j { console | start | stop |restart | status | version }  
[root@iii tmp]# neo4j console  
Active database: graph.db  
Directories in use:  
 home:         /var/lib/neo4j  
 config:       /etc/neo4j  
 logs:         /var/log/neo4j  
 plugins:     /var/lib/neo4j/plugins  
 import:      /var/lib/neo4j/import  
  data:         /var/lib/neo4j/data  
 certificates: /var/lib/neo4j/certificates  
 run:          /var/run/neo4j  
Starting Neo4j.  
……  

步骤三:设置远程访问

[root@iii tmp]# cat /etc/neo4j/neo4j.conf 
找到对应的项目org.neo4j.server.webserver.address=0.0.0.0,然后移除前面的注释

安装好以后,在控制台启动Neo4j,然后打开浏览器访问 http://192.168.1.1:7474/ ,就可以查看Neo4j服务了。

登录图数据库的时候使用默认的用户名和密码(neo4j)连接,连接成功后需要修改neo4j的默认密码。

第二部分 cypher操作

----------------------------------------------------
neo4j 常用cypher操作

1.基本概念

Label:标签,对应关系DB里的表;
节点Node:相当于表里的每行数据,包含多个属性(列);
关系Ralition  : 边,也可以有属性,大小写区分。其他均不区分大小写

2.neo4j字段类型

NEO4J           java
------------------------
NULL             null
Boolean         java.lang.Boolean
Integer           java.lang.Long
Float              java.lang.Double
String            java.lang.String
List                java.util.List<T>
Map              java.util.Map<K,V>
Node            org.neo4j.driver.v1.types.Node(*)
Relationship  org.neo4j.driver.v1.types.Relationship(*)
Path               org.neo4j.driver.v1.types.Path(*)

3.cypher语法

1)创建节点与关系 CREATE
CREATE (erzi:Person {id:'erzi'}),(baba:Person {id:'baba'}),(erzi)-[:fathor]->(baba) 
//erzi baba是别名  Person是标签名(表名)  {id:'erzi'}是节点属性  (erzi:Person {id:'erzi'})是节点  [:fathor]是关系
2)查询 MATCH
MATCH (n:Person) RETURN n limit 25
等价于:Select * from Person limit 25  Person表名
Match (n:Person {id:'erzi'}),(f:Person {id:'baba'})
等价于:
Match (n:Person ),(f:Person)
where n.id='erzi' and f.id='baba'
Merge (n)-[:fathor]->(f)
return n,f
3)MERGE 不存在就创建 存在就返回  (没有更新功能!只会创建新的节点)
MERGE (n:Person { name: 'Ann' }) RETURN n
4)更新 SET
MATCH (N:PERSON {ID:'BABA'}) SET N.NAME='张三',N.AGE=50 RETURN N
5)DELETE 和 REMOVE
DELETE操作用于删除节点和relation。
REMOVE操作用于删除标签label和属性。
MATCH (n:Person {id:'baba'}) remove n.age return n //删除属性
MATCH (s:Teacher)-[r:teach]->(d:Student) delete r,s,d //删除节点和relation
6)排序 ORDER BY
MATCH (n:Person) RETURN n order by n.id,n.name desc  LIMIT 25
7)分页 SKIP LIMIT
MATCH (n:Person) RETURN n order by n.id desc SKIP 2  LIMIT 25
skip 从多少行开始查 limit查询件数
8)UNION 和 UNION ALL
MATCH (n:Person) where n.age>20 RETURN n.id,n.age 
UNION ALL
MATCH (n:Person) where n.id='erzi' RETURN n.id,n.age
9)IN
MATCH (n:Person) where n.age>20 RETURN n.id,n.age 
UNION ALL
MATCH (n:Person) where n.id in ['erzi','baba']  RETURN n.id,n.age
10)可以通过函数id(node/relation)获取id值 这个id相当于oracle的rowid
11)创建删除索引
create index on :Person(id);
drop index on :Person(id);
12)执行计划查看 explain match 
13)设置唯一约束
CREATE CONSTRAINT ON (a:Person) ASSERT a.id IS UNIQUE
DROP CONSTRAINT ON (a:Person) ASSERT a.id IS UNIQUE
14)常用函数
功能    描述
UPPER    它用于将所有字母更改为大写字母。
LOWER    它用于将所有字母改为小写字母。
SUBSTRING    它用于获取给定String的子字符串。
REPLACE    它用于替换一个字符串的子字符串。
Match (n:Person) return SUBSTRING(n.id,2,0),n.id
聚集函数    描述
COUNT    它返回由MATCH命令返回的行数。
MAX    它从MATCH命令返回的一组行返回最大值。
MIN    它返回由MATCH命令返回的一组行的最小值。
SUM    它返回由MATCH命令返回的所有行的求和值。
AVG    它返回由MATCH命令返回的所有行的平均值。
15)查询最短路径shortestPath allShortestPaths
match p=shortestPath((n:Person {id:'mama'})-[*..3]-(b:Person {id:'nainai'})) return 
16)导入CSV数据
LOAD CSV WITH HEADERS FROM "http://data.neo4j.com/northwind/products.csv" AS row //远程
CREATE (n:Product)
SET n = row,
  n.unitPrice = toFloat(row.unitPrice),
  n.unitsInStock = toInteger(row.unitsInStock), n.unitsOnOrder = toInteger(row.unitsOnOrder),
  n.reorderLevel = toInteger(row.reorderLevel), n.discontinued = (row.discontinued <> "0")

LOAD CSV WITH HEADERS FROM "file:///products22.csv" AS row //本地

CREATE (n:Product)
SET n = row

第三部分 数据迁移操作

----------------------------------------------------
1.直接将data文件夹copy到要导入的库中就可以了
2.密码重置 删除data文件夹下的auth文件就恢复到默认密码 neo4j 了
3.不同版本间数据迁移 设置配置文件 dbms.allow_format_migration=true

第四部分 开发

----------------------------------------------------
rest接口地址 http://XXX.XXX.XX.XX:7474/db/data/
文档地址 https://neo4j.com/docs/rest-docs/3.3/

转载于:https://my.oschina.net/dajianguo/blog/1572366

你可能感兴趣的文章
Windows2012、windows2016配置多用户登录
查看>>
VMware vSAN超融合虚拟化架构与NetApp FAS2620存储服务器虚拟化架构对比
查看>>
周期性任务计划
查看>>
Java多进程管道通信
查看>>
ipfs官方周刊,18期
查看>>
无线压力变送器的安装与标定方式!
查看>>
sever 2016部署web服务
查看>>
varnish使用yum安装及不同域名站点
查看>>
五分钟教会你分布式系统调用链监控
查看>>
VLAN与Trunk配置
查看>>
我的友情链接
查看>>
webservice调用报object is not an instance of declaring class错
查看>>
使用postfix发邮件被拒(UBE)的处理
查看>>
Shell学习NO.1——Shell的作用和使用技巧
查看>>
apache中 MaxClients 与MaxRequestsPerChild 并发数
查看>>
mfs+drbd+corosync+pacemaker+pcs+crmsh高可用分布式集群搭建
查看>>
linux-/etc/inittab,rc.sysinit,rc服务类脚本,chkconfig
查看>>
linux运维实战练习案例-2015年12月20日-12月31日(第一次)
查看>>
shell中字符串的截取方法、cut基本用法
查看>>
Install and Configure OpenStack Telemetry Metering Service (Ceilometer) for Ubuntu 14.04
查看>>