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入门详细教程的更多相关文章

  1. ThinkJS框架入门详细教程(二)新手入门项目

    一.准备工作 参考前一篇:ThinkJS框架入门详细教程(一)开发环境 安装thinkJS命令 npm install -g think-cli 监测是否安装成功 thinkjs -v 二.创建项目 ...

  2. spring入门详细教程(五)

    前言 本篇紧接着spring入门详细教程(三),建议阅读本篇前,先阅读第一篇,第二篇以及第三篇.链接如下: Spring入门详细教程(一) https://www.cnblogs.com/jichi/ ...

  3. Spring入门详细教程(四)

    前言 本篇紧接着spring入门详细教程(三),建议阅读本篇前,先阅读第一篇,第二篇以及第三篇.链接如下: Spring入门详细教程(一) https://www.cnblogs.com/jichi/ ...

  4. Spring入门详细教程(三)

    前言 本篇紧接着spring入门详细教程(二),建议阅读本篇前,先阅读第一篇和第二篇.链接如下: Spring入门详细教程(一) https://www.cnblogs.com/jichi/p/101 ...

  5. Spring入门详细教程(二)

    前言 本篇紧接着spring入门详细教程(一),建议阅读本篇前,先阅读第一篇.链接如下: Spring入门详细教程(一) https://www.cnblogs.com/jichi/p/1016553 ...

  6. Xcode和github入门详细教程

    Xcode和github详细教程! 主要是参考了现在网上的一些资料给没整过的人一个详细的指南. (1)先在github上注册账号,自行解决! (2)在导航栏右上角new一个repository(仓库) ...

  7. windows下Gulp入门详细教程 &&gulp安装失败的原因(红色)

    以下教程亲自实践可行: 另外添加一个Gulp自动编译.压缩.更新.测试的教程链接:https://markpop.github.io/2014/09/17/Gulp%E5%85%A5%E9%97%A8 ...

  8. gulp入门详细教程

    简介:gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器:她不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成:使用她,我们不仅可以很愉快的编写代码, ...

  9. Spring入门详细教程(一)

    一.spring概述 Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用.Spring是于2003 年兴起的一个轻量级的 ...

随机推荐

  1. 方法(method)

    方法是可以完成某个特定的功能,并且可以重复利用的代码片段...C中叫为函数 方法定义在类体中,不可定义在主方法下. 一个方法执行完就会被释放, 提高代码的复用性 相同的业务逻辑就可以不用重复,,,,因 ...

  2. ShardingSphere-proxy-5.0.0容量范围分片的实现(五)

    一.修改配置文件config-sharding.yaml,并重启服务 # # Licensed to the Apache Software Foundation (ASF) under one or ...

  3. HDFS数据平衡

    一.datanode之间的数据平衡 1.1.介绍 ​ Hadoop 分布式文件系统(Hadoop Distributed FilSystem),简称 HDFS,被设计成适合运行在通用硬件上的分布式文件 ...

  4. Android高仿网易云音乐-启动界面实现和动态权限处理

    效果 实现分析 基本上没有什么难点,就是布局,然后显示用户协议对话框,动态处理权限,判断是否显示引导界面,是否显示广告界面等. 布局 <?xml version="1.0" ...

  5. CF487E Tourists 题解

    题目链接 思路分析 看到这道题首先想到的此题的树上版本.(不就是树链剖分的板子题么?) 但是此题是图上的两点间的走法,自然要想到是圆方树. 我们先无脑构建出圆方树. 我们先猜测:设后加入的节点权值为 ...

  6. NC16884 [NOI2001]食物链

    题目链接 题目 题目描述 动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形.A吃B,B吃C,C吃A. 现有N个动物,以1-N编号.每个动物都是A,B,C中的一种,但是我们并不知道它到 ...

  7. .NET GC工作流程

    前言 在上文[如何获取GC的STW时间]一文中,我们聊到了如何通过监听GC发出的诊断事件来计算STW时间.里面只简单的介绍了几种GC事件和它的流程. 群里就有小伙伴在问,那么GC事件是什么时候产生的? ...

  8. HMS Core音频编辑服务支持7种音频特效,助力一站式音频处理

    多媒体时代,音频作为内容传播中的重要形式,因其不受空间限制.认知负担小.声音元素多样化等特点,广泛应用于短视频制作.儿童在线教育.有声阅读.游戏等领域产品,在各种形式的音频呈现过程中,合理添加音效能够 ...

  9. 手机APP无法抓包HTTPS解决方案

    问题表现:某个APP的HTTPS流量抓取不到,Fiddler报错,但可以正常抓取其它的HTTPS流量 可能原因: 1.Flutter应用,解决方案:https://www.cnblogs.com/lu ...

  10. JetBrains系列IDE创建文件模板

    #coding:utf-8 ''' @version: python3.6 @author: '$USER' @license: Apache Licence @contact: steinven@q ...