• Neo4j 学习笔记(-)


    Neo4j 的使用说明(一)(基于V3.4.9)

    下一篇(二):https://www.cnblogs.com/infoo/p/11947467.html

    一、Neo4j简介

    Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。

    Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。程序员工作在一个面向对象的、灵活的网络结构下而不是严格、静态的表中——但是他们可以享受到具备完全的事务特性、企业级的数据库的所有好处。(摘自百度百科)

    Neo4j当前有:Enterprise Server,  Community Server

    当前的最新稳定版为3.4.9 (2018年10月)

    同时也提供了桌面操作管理工具:Neo4j Desktop(需要激活码)

    本文从Neo4j的下载,安装,和Cypher简单使用。介绍一下Neo4j的入门

    二、Neo4j的安装

           因条件限制以在win10 上安装Community Server 为例

    1、官网下载

         相应版本https://neo4j.com/download-center/#releases

           速度可能会较慢;

     

             下载页面提示默认的用户名和密码均为neo4j   )

           可到http://we-yun.com/index.php/blog.html 找到网盘地址

           可能不会是最新版

    2、下载完成后,解压即可

         如果为了方便更改dbms.directories.data的值,不建议进行安装环境变量;dbms.directories.data 后面介绍

    3、启动neo4j  

                 neo4j 的目录下面打开cmd,  输入neo4j.bat console

                 出现下图则启动成功 

     

            最后一行的警告是通过浏览器访问localhost:7474 的输出日志信息,具体的原因尚不清楚,但目前并不影响正常使用

            当关闭该cmd 窗口时,neo4j 服务也会关闭;因此可通过下面操作将其安装为服务。

     

    非最新版或非官网下载可能会出现安装失败;

    解决方案可参考https://blog.csdn.net/weixin_42103075/article/details/80473283

    因此建议从官网下载最新稳定版

     

        卸载服务使用 neo4j uninstall-service

     

           以下相关的服务操作 bin eo4j start

          bin eo4j stop

          bin eo4j restart

          bin eo4j status

          也可使用win10自带的服务管理界面来进行启动等操作

     

     

    4、通过localhost:7474访问

        会出现下面界面(首次会出现登录页面)

     

    5、测试:创建、查询和删除一个节点

      

        创建一个标签为Person的节点,其有属性 name age

     

    查询一个节点

     

    删除一个节点

    上述仅仅是简单的创建、查询和删除节点的Cypher 语句;

    详情请查阅相关的Cypher文档

     

    6、测试:创建、查询和删除关系

           1)先创建三个节点:

            create(:Person{name:"a"}),(:Person{name:"b"}),(:Person{name:"c"})

           2)为其中的两个顶点添加边:

             match (n:Person{name:"a"}),(m:Person{name:"b"})  create (n)-[:R{type:"朋友"}]->(m)

           或:match(n),(m) where n.name=”a” and m.name=”b” create (n)-[:R{type:"朋友"}]->(m)

           其基本思想是先找到要添加边的两个顶点,再为其创建边

     

        上述两种方式是有缺陷的,因为有可能查出来不止一个节点,那么就会为许多匹配的节点都添加边

     

    上图出现了警告

     

     

    因此一般我们再创建新节点的时候就要创建边

    例如:

          create (n:Person{name:"d"}),(m:Person{name:"e"})  create (n)-[:R{type:"父子"}]->(m)

         或:create (n:Person{name:"f"})-[r:R{type:"朋友"}]->(m:Person{name:"g"})

        使用 return 语句,返回创建结果视图

     

    3)删除关系(包含关系的查询)

    match (n:Person{name:"f"})-[r:R{type:"朋友"}]->(m:Person{name:"g"}) delete r [该方式已过时不推荐使用]或

    match p=(n:Person{name:"d"})-[:R*1..2]->(m:Person{name:"e"})  delete p [推荐使用该语句]

    说明:

    第二条里面的*1..2 查询的路径长度,最小为1,最大为2的关系为R的路径

     

    在删除关系之前要先查询到该关系;

    上述是简单的Cypher实现,当然还有其它写法;

    可参考官方文档学习 :

    https://neo4j.com/docs/developer-manual/current/cypher/

    7、基本的思想

       Cypher 语句是Neo4j图形数据库的查询语言

       基本思想需要掌握的是:顶点的表示 (n)

       关系(边)的表示 (n)-[r]->(m)

       这里的n r m可以看作是变量

       详细的语法可参考

    https://neo4j.com/docs/developer-manual/current/cypher/syntax/patterns/#cypher-pattern-varlength

    Cypher 内容丰富,与SQL 类似,同样包含诸多函数等;基本上能满足各种需求。因时间关系,未能一一学习了解

    三、Neo4j的使用方式

    1. 基于浏览器的可视化,使用Cypher语句进行相关操作
    2. 基于Java 等编程语言的API 操作

    四、基于Neo4j Native Java API 的应用介绍

           相关代码放在https://github.com/infoo/Neo4j

    1、使用Java Api 进行相关的增删改查操作

       若无可视化需求,可以在不安装neo4j server 的情况下使用Neo4j,只需要导入Neo4jjar包即可

       <dependency>
        <groupId>org.neo4j</groupId>
        <artifactId>neo4j</artifactId>
        <version>3.4.9</version>
       </dependency>

     

    2、使用Java Api 执行 Cypher语句进行相关的增删改查操作

     

  • 相关阅读:
    面向过程--面向对象
    shiro有哪些组件?
    Redis的特点什么是?
    Spring Boot 有哪些优点?
    什么是 JavaConfig?
    HashMap和Hashtable的区别
    深入理解SQL的四种连接-左外连接、右外连接、内连接、全连接
    Linux指令--tar,gzip
    JQuery 学习总结及实例
    $(this) 和 this 关键字在 jQuery 中有何不同?
  • 原文地址:https://www.cnblogs.com/infoo/p/9840965.html
Copyright © 2020-2023  润新知