第一部分 安装
---------------------------------------------------- 步骤一:安装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/