Neo4j安装配置
(1)下载安装包
(2)安装jdk
(3)环境变量配置
分三步,具体参考 https://www.bilibili.com/video/BV1Nz411q7bG?from=search&seid=11789489567953530494
Neo4j常用命令
neo4j install-service # 安装服务
neo4j uninstall-service # 卸载服务
neo4j console # 控制台启动
neo4j start # 启动
neo4j stop # 停止
neo4j restart # 重启
启动成功后访问 http://localhost:7474/browser/ 或者 http://127.0.0.1:7474/browser/
账号密码默认 neo4j
Neo4j相关概念
节点:
节点是图数据库中的一个基本元素,表示一个具体的实体,可以类比成关系数据库中的记录
关系:
关系是图数据库中节点之间的连接,也表示成节点之间的边,neo4j中关系是双向的
属性:
属性是对节点以及关系的一种说明,可以类比成关系数据库中的字段或者列,这里需要强调的是,在图数据库中关系也是可以设计属性的。
标签:
标签(label)是同一类节点的组合,但是并不是在同一标签下的节点一定包含相同属性。
路径:
路径是图数据库建立之后,任意两个节点之间的连通管理,是关系的组合。
cypher语言快速入门
cypher是一种非常简洁的图查询语言,可以在shell与浏览器端直接执行。其基本语法包含以下四个部分:
start:设定查找的起始节点
match:匹配图形模式, 可以定位感兴趣数据的子图形
where:对查询数据进行过滤
limit:限制查询数量
return:返回结果
注意:在新版本的neo4j中start可以省略
CREATE 创建一个节点
使用 Cypher 生成一个小的社交图.
CREATE (ee:Person { name: "Emil", from: "Sweden", klout: 99 })
CREATE
创建数据的子句()
圆括号表示一个节点ee:Person
变量 ‘ee’ 和 标签 ‘Person’ 表示新的 节点花括号添加属性到节点
MATCH 查找节点
查找表示 Emil 的节点:
MATCH (ee:Person) WHERE ee.name = "Emil" RETURN ee;
MATCH
指定节点和关系的模式的子句(ee:Person)
带有标签 “Person” 的单节点模式, 将匹配项赋给变量 “ee”WHERE
约束结果的子句ee.name = "Emil"
比较 name 属性与 “Emil” 值RETURN
用于请求特定结果的子句
ee是变量,通过where查询相匹配的节点,并返回该变量ee
创建更多 节点和关系
CREATE
子句可以一次创建多个节点及关系.
MATCH (ee:Person) WHERE ee.name = "Emil" CREATE (js:Person { name: "Johan", from: "Sweden", learn: "surfing" }), (ir:Person { name: "Ian", from: "England", title: "author" }), (rvb:Person { name: "Rik", from: "Belgium", pet: "Orval" }), (ally:Person { name: "Allison", from: "California", hobby: "surfing" }), (ee)-[:KNOWS {since: 2001}]->(js),(ee)-[:KNOWS {rating: 5}]->(ir), (js)-[:KNOWS]->(ir),(js)-[:KNOWS]->(rvb), (ir)-[:KNOWS]->(js),(ir)-[:KNOWS]->(ally), (rvb)-[:KNOWS]->(ally)
节点和关系
Cypher 采用一对圆括号 () 来表示节点,如 (n:角色) 表示一个 角色 节点,n 是变量名,供命令执行时用 n 来访问这个节点,在命令执行完毕后就无法使用了。同时单独的 () 表示一个匿名节点,在匹配时表示匹配所有节点。
在关系中
-
--
表示无方向的关系 -
-->
表示有方向的关系 -
-[r]->
则给关系赋予一个变量名,方便对这个关系进行操作 -
-[r:配偶]->
匹配关系为配偶
的类型
模式匹配 描述在图中查找的内容
例如, 一个用来查找 Emil 的朋友的模式:
MATCH (ee:Person)-[:KNOWS]-(friends) WHERE ee.name = "Emil" RETURN ee, friends
MATCH
用于描述从已知节点到找到的节点的模式的子句(ee)
模式以 Person 开始 (由 WHERE 限定)-[:KNOWS]-
匹配 “KNOWS 关系 (任意方向)(friends)
将绑定为 Emil 的朋友
推荐 使用模式
模式匹配可以用来做推荐. Johan 正在学 冲浪, 因此他想找到一个冲浪的新朋友:
MATCH (js:Person)-[:KNOWS]-()-[:KNOWS]-(surfer) WHERE js.name = "Johan" AND surfer.hobby = "surfing" RETURN DISTINCT surfer
()
空的圆括号表示忽略这些节点DISTINCT
因为不止一条路径将与模式匹配surfer
将包含 Allison, 一个朋友的朋友, 且冲浪
分析 使用可视化查询计划
要了解查询的工作原理, 可在查询之前加 EXPLAIN
或 PROFILE
:
PROFILE MATCH (js:Person)-[:KNOWS]-()-[:KNOWS]-(surfer) WHERE js.name = "Johan" AND surfer.hobby = "surfing" RETURN DISTINCT surfer
Cypher入门常用到的语句,推荐!
更多 Cypher 语法内容请查看 https://neo4j.com/docs/cypher-refcard/3.5/
以下为其他内容
Neo4j清空数据
一、用下列 Cypher 语句:
match (n) detach delete n
二、
1、停掉服务;
2、删除 graph.db 目录;
3、重启服务。
少量数据推荐第一种方案,数据量大容易内存溢出,因为是先查出来再删除,所以数据量大推荐第二种方案
关系结构图
有方向关系图
无方向关系图
附一张建好节点关系的图片(*^_^*)
今天的文章Neo4j入门详细教程分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/55694.html