neo4j图形数据库简介

  • neo4j简介
    • 图形数据库
    • 环境变量配置(需要Java环境):NEO4J_HOME+文件目录 ; Path里面:%NEO4J_HOME%\bin ; 命令窗口输入·: neo4j console然后输 neo4j install-service安装服务到本地;neo4j start启动服务
      打开数据浏览器:http://localhost:7474/browser/
    • 数据存储: 以图的结构存储 数据,可以存储图的节点,属性(键值对),边。属性,节点分开储存,属性与节点的关系构成边。
    • 数据读写:在 Neo4j 中,存储节点时使用了 Index-free Adjacency 技术,即每个节点都有指向其邻居节点的指针,可以让我们在时间复杂度为 O(1) 的情况下找到邻居节点。另外,按照官方的说法,在 Neo4j 中边是最重要的,是 First-class Entities,所以单独存储,更有利于在图遍历时提高速度,也可以很方便地以任何方向进行遍历。
    • 其他同类:Flockdb,Orientdb, Arangodb。Neo4j稳定性最好
  • Neo4j使用
    • 关系是有方向性的(创建关系时使用merge有则返回,没则创建;使用create则会一直创建)

    • 图形数据库将其所有数据存储在节点和关系中,以图形的形式存储器数据的本机格式

    • 使用本机GPE引擎来使用它的本机图存储格式

    • 关系可以有一个属性作为键值对。例如: ID= 123

    • 标签将一组公共节点或关系相关联,节点或关系可以包含一个或多个标签

    • 使用()标识节点,使用[]标识关系

    • create 创建节点,关系和属性
      match 检索有关节点,关系和属性
      return 返回查询结果
      where 提供条件检索数据
      delete 删除节点和关系
      remove 删除节点和关系的属性
      order by 排序检索数据
      set 添加或更新标签

    • boolean 布尔类型:true, false
      byte 8位整数
      short 16位整数
      int 32位整数
      long 64位整数
      float 32位浮点数
      double 64位浮点数
      char 16位字符
      String 字符串

    • Neo4j数据库服务器使用 < node-name > 将此节点详细信息存储在Database.As中作为Neo4j DBA或Developer, 不能使用它来访问节点详细信息
      Neo4j数据库服务器创建一个< label-name >作为内部节点名称的别名。使用此标签名称来访问节点详细信息

    • match要配合return,set,delete使用

    • neo4j配置文件的修改

    • match (a:author) set a.name="wu" return a      #增加属性或者修改属性。这里'a'是给'author'起个"变量名",下面类似
      match (n:author) where n.name=~'w*' return n   #可以使用正则匹配
      match (n:author) where n.name contains 'w' return n   #包含查询
      DETACH DELETE    #子句允许你删除一个节点的同时删除与其相连的所有关系
      match(c:Customer) where id(c)=110 delete c return c    #根据节点id删除节点
      match (c:Creditcard) where id(c)=111 set c.name="工商银行" return c  #根据节点id增加属性
      match (c:Customer) match (a:Creditcard) create (a)-[r:消费]->(c)  return r    #创建关系                                                
      match (w:weibo),(c:chaping) where w.emot=0 create (w)-[r1:差评]->(c) return r1 #根据属性建立节点关系
      MATCH p=()-[r:`消费`]->() where id(r)=0 set r.`额度`=200000 return r #创建关系的属性
      match (c:Customer) return c.name as name,c.id as id union match (a:Creditcard) return a.id as id,a.name as name        #联合查询,此处id只能返回节点属性里设置的id,默认节点id会返回null.(union查询会过滤掉重复行,union all 返回所有数据)
      create(drop) index on :author(name)   #创建/删除索引
      create(drop) constraint on (a:author) assert (a:author) is unique  #创建/删除约束
      
    • APOC(a package of component):

      • 两个jar包,放到neo4j的plugins目录下:apoc-3.4.0.3.jar和mysql-connector-java-5.1.21.jar
      • Text and Lookup indexes (文本和索引查找)
      • utility functions (实用函数):域名提取、时间、日期、数据格式转换等功能
      • graph algorithms(图算法):社区检测、PageRank、中心算法等
      • spatial(空间函数):地理编码、位置计算、空间与时间搜索等
      • data integration(数据集成):JSON、JDBC、CSV等数据加载
      • graph refactorings(图形重构):节点合并、属性规范与分类等
      • virtual nades/rels(虚拟节点/关系):提供虚拟图的创建
      • cypher operations(cypher 操作):单个和多个的cypher语句运行和脚本运行
      • triggers(触发器):与关系型数据库的触发器的理解方式一样
    • neo4j导入三元数据组

      • 关闭计算机的neo4j服务
      • 删除neo4j默认的数据库文件\data\databases\graph.db,否则的话在此路径下创建新的数据库文件,文件名为***.db,然后修改neo4j的配置文件\conf\neo4j.conf,修改处:#dbms.active_database=graph.db,换位自己新建的数据库名字,解除注释
      • 导入数据方式很多,我用的是import的方法把整理好的节点csv和关系csv放到neo4j的import文件里面
      • 导入文件命令:neo4j-admin import --nodes E:\neo4j-community-3.5.14\import\entity.csv --relationships E:\neo4j-community-3.5.14\import\relationship.csv --multiline-fields=true --ignore-missing-nodes=true
      • 开启neo4j服务,进入自带可视化网址查看图形数据库

猜你喜欢

转载自blog.csdn.net/weixin_46046193/article/details/108632351