美文网首页Neo4J
Datawhale 知识图谱组队学习 Task 1 Neo4J介

Datawhale 知识图谱组队学习 Task 1 Neo4J介

作者: 听城 | 来源:发表于2021-01-11 21:33 被阅读0次

    知识图谱由于其数据包含实体、属性、关系等,常见的关系型数据库诸如MySQL之类不能很好的体现数据的这些特点,因此知识图谱数据的存储一般是采用图数据库(Graph Databases)。而Neo4j是其中最为常见的图数据库。

    安装JDK

    https://www.injdk.cn/,根据自己需求下载,注意:社区版4.2.2需要jdk版本为jdk11

    JDK下载
    安装完成中选择将其添加到PATH

    安装完成后在命令行测试java和javac


    安装Neo4J

    首先在 https://neo4j.com/download-center/ 下载Neo4J。Neo4J分为社区版和企业版,企业版在横向扩展、权限控制、运行性能、HA等方面都比社区版好,适合正式的生产环境,普通的学习和开发采用免费社区版就好。

    image.png
    在Mac或者Linux中,安装好jdk后,直接解压下载好的Neo4J包,运行命令bin/neo4j start
    windows系统下载好neo4j和jdk 1.8.0后,输入以下命令启动neo4j.bat console

    注:上面的命令需要在bin目录下执行,如果想打开命令行就可以使用,请添加环境变量



    使用Neo4J

    Neo4J默认的图形化地址是bolt://localhost:7474,浏览器打开后填写默认用户neo4j,默认密码neo4j,第一次成功登陆到Neo4j服务器之后,需要重置密码。登录成功后界面

    image.png

    Neo4J实战教程

    官方文档

    创建节点

    CREATE (<node-name>:<label-name>)
    
    CREATE (
       <node-name>:<label-name>
       {    
          <Property1-name>:<Property1-Value>
          ........
          <Propertyn-name>:<Propertyn-Value>
       }
    )
    
    CREATE (<node1-details>)-[<relationship-details>]->(<node2-details>)
    # 关系必须有方向
    

    CREATE (n:Person { name: 'Andy', title: 'Developer' })

    匹配节点

    match用来匹配图数据库中的节点,如match (n:Person) return n.name,返回所有节点为Person标签的名字

    创建关系

    MERGE can be used to match or create a relationship.
    MATCH (a:Person {name:'Shawn'}), (b:Person {name:'Sally'}) MERGE (a)-[:FRIENDS {since:2001}]->(b)

    删除和修改

    MATCH (a:Person {name:'Liz'}) SET a.age=34//增加/修改节点的属性
    MATCH (a:Person {name:'Mike'}) REMOVE a.test//删除节点的属性
    MATCH (a:Location {city:'Portland'}) DELETE a //删除节点
    

    通过 Python 操作 Neo4j

     # step 1:导包
      from py2neo import Graph, Node, Relationship
      # step 2:构建图
      g = Graph()
      # step 3:创建节点
      tx = g.begin()
      a = Node("Person", name="Alice")
      tx.create(a)
      b = Node("Person", name="Bob")
      # step 4:创建边
      ab = Relationship(a, "KNOWS", b)
      # step 5:运行
      tx.create(ab)
      tx.commit()
    

    Neo4j之导入CSV数据

    https://zhuanlan.zhihu.com/p/93746655
    参考:
    https://blog.seoui.com/2019/08/23/neo4j_study/#%E7%AC%AC%E4%B8%89%E7%AB%A0%EF%BC%9ACQL
    https://zhuanlan.zhihu.com/p/88745411
    https://github.com/datawhalechina/team-learning-nlp/blob/master/KnowledgeGraph_Basic/task01.md#44-neo4j-web-%E7%95%8C%E9%9D%A2-%E4%BB%8B%E7%BB%8D

    相关文章

      网友评论

        本文标题:Datawhale 知识图谱组队学习 Task 1 Neo4J介

        本文链接:https://www.haomeiwen.com/subject/vswdaktx.html