图数据库初体验——Neo4j & Cypher

1. 下载与启动

Neo4j官网可以免费下载社区版Neo4j以及Neo4j Desktop。以macOS为例,Desktop为常规客户端程序下载安装直接用,社区版下载下来以后需要解压,通过终端进入解压位置启动Neo4j,为了方便可以设置一下访问路径。

进入终端,输入vim ~/.bash_profile,按一下i进入编辑模式,加一行代码

export PATH="your_path/bin:$PATH"

其中your_path为解压后Neo4j的路径,按esc输入:wq,退出编辑后输入

source ~/.bash_profile

然后在终端直接输入 neo4j start 就可以启动啦,启动后在浏览器访问 http://localhost:7474/browser/ 就可以使用啦,初始账户以及密码都是neo4j。

2. 快速上手

图数据库的查询逻辑和自然语言已经相当接近,通过官方的案例就能快速上手,以下为官方提供的基本样例。

简单查询

Find movies released in the 1990s…

查找90年代电影

MATCH (nineties:Movie) WHERE nineties.released >= 1990 AND nineties.released < 2000 
RETURN nineties.title

List all Tom Hanks movies…

查找Tom Hanks出演的电影

MATCH (tom:Person {name: "Tom Hanks"})-[:ACTED_IN]->(tomHanksMovies) 
RETURN tom,tomHanksMovies

How people are related to “Cloud Atlas”…

查找与Cloud Atlas相关的人与相关关系

MATCH (people:Person)-[relatedTo]-(:Movie {title: "Cloud Atlas"}) 
RETURN people.name, Type(relatedTo), relatedTo

关系路径

Movies and actors up to 4 “hops” away from Kevin Bacon

查找和Kevin Bacon有关的所有四度关系(包括小于四)

MATCH (bacon:Person {name:"Kevin Bacon"})-[*1..4]-(hollywood)
RETURN DISTINCT hollywood

Bacon path, the shortest path of any relationships to Meg Ryan

查找Kevin Bacon至Meg Ryan最近的关系路径

MATCH p=shortestPath(
(bacon:Person {name:"Kevin Bacon"})-[*]-(meg:Person {name:"Meg Ryan"})
)
RETURN p

复杂查询

Extend Tom Hanks co-actors, to find co-co-actors who haven’t worked with Tom Hanks…

查找未与Tom Hanks合作过的演员(但是与其合作演员有过合作)

MATCH (tom:Person {name:"Tom Hanks"})-[:ACTED_IN]->(m)<-[:ACTED_IN]-(coActors),
      (coActors)-[:ACTED_IN]->(m2)<-[:ACTED_IN]-(cocoActors)
WHERE NOT (tom)-[:ACTED_IN]->()<-[:ACTED_IN]-(cocoActors) 
      AND tom <> cocoActors
RETURN cocoActors.name AS Recommended, 
       count(*) AS Strength 
       ORDER BY Strength DESC

Find someone to introduce Tom Hanks to Tom Cruise

查找Tom Cruise与Tom Hanks共同合作过的演员以及合作电影

MATCH (tom:Person {name:"Tom Hanks"})-[:ACTED_IN]->(m)<-[:ACTED_IN]-(coActors),
      (coActors)-[:ACTED_IN]->(m2)<-[:ACTED_IN]-(cruise:Person {name:"Tom Cruise"})
RETURN tom, m, coActors, m2, cruise
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Cypher是一种声明式数据库查询语言,类似于关系数据库中的SQL。它设计借鉴了其他语言的惯用做法,如SQL和Python。Cypher的基本语法包括MATCH(匹配模式)、WHERE(过滤条件)和RETURN(定义返回结果)。可以使用CREATE(增)、DELETE(删)、SET(改)和MATCH(查)等关键字来操作节点和关系。例如,可以使用create命令创建一个名为"猪爷爷"的节点,代码如下:create(:pig{name:"猪爷爷", age:15}); Neo4j是一款强健、可伸缩、高性能的数据库。它完整支持ACID事务,具有高可用性,并可以轻松扩展到上亿级别的节点和关系。使用Neo4j可以进行高效的数据库查询和更新操作。可以通过Cypher语言来表达这些查询和更新操作,以实现对数据库的操作和管理。 Neo4j适用于各种规模的企业部署,也可以用于轻量级项目中的完整服务器的一个子集。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [neo4j基本知识及Cypher语言](https://blog.csdn.net/weixin_43178406/article/details/103906826)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [三、Neo4j查询语言Cypher相关命令介绍](https://blog.csdn.net/gdkyxy2013/article/details/109489063)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Neo4j Cypher](https://download.csdn.net/download/qq_25424257/10370504)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值