• Neo4j:相关概念和安装


    图论

    图论起源 --- 柯尼斯堡(Konigsberg)七桥问题

    众所周知,图论起源于一个非常经典的问题——柯尼斯堡(Konigsberg)七桥问题。1738年,瑞典数 学家欧拉( Leornhard Euler)解决了柯尼斯堡七桥问题。由此图论诞生,欧拉也成为图论的创始人

    image-20220519171724334

    欧拉把问题的实质归于"一笔画"问题,即判断一个图是否能够遍历完所有的边(Edge)而没有重复,而柯 尼斯堡七桥问题则是一笔画问题的一个具体情境。欧拉证明这个问题不成立。

    满足一笔画的图满足两个条件:

    • 图必须是一个完整图
    • 有零个或二个奇数点

    图 和 节点

    图是一组节点和连接这些节点的关系组成。图形数据存储在节点和关系所在的属性上。属性是键值对表示的数据。

    在图形理论中,我们可以使用圆表示一个节点 并且可以向里面添加键值对形式的数据。

    节点关系表达

    简单关系表达

    image-20220519172405987

    此处在两个节点之间创建关系名称“跟随”。 这意味着Profile1 跟随 Profile2。

    复杂关系表达

    image-20220519172428315

    这里节点用关系连接。 关系是单向或双向的。

    • 从ABC和XYZ的关系是单向关系。
    • 从ABC和PQR的关系是双向关系。

    属性图模型规则

    image-20220519172618328

    • 图表示节点,关系和属性中的数据
    • 节点和关系都包含属性
    • 关系连接节点
    • 属性是键值对
    • 节点用圆圈表示,关系用方向键表示。
    • 关系具有方向:单向和双向。
    • 每个关系包含“开始节点”或“从节点” 和 “到节点”或“结束节点”

    知识图谱和图库

    知识图谱

    一种基于图的数据结构,由节点(Node)和边(Edge)组成。其中节点即实体,由一个全局唯一的ID标示, 边就是关系用于连接两个节点。通俗地讲,知识图谱就是把所有不同种类的信息(Heterogeneous Information)连接在一起而得到的一个关系网络。知识图谱提供了从“关系”的角度去分析问题的能力。

    互联网、大数据的背景下,谷歌、百度、搜狗等搜索引擎纷纷基于该背景,创建自己的知识图谱 Knowledge Graph(谷歌)、知心(百度)和知立方(搜狗),主要用于改进搜索质量。

    图数据库

    一般情况下,我们使用数据库查找事物间的联系的时候,只需要短程关系的查询(两层以内的关联)。 当需要进行更长程的,更广范围的关系查询时,就需要图数据库的功能。而随着社交、电商、金融、零 售、物联网等行业的快速发展,现实世界的事物之间织起了一张巨大复杂的关系网,传统数据库面对这 样复杂关系往往束手无策。因此,图数据库应运而生。

    图数据库(Graph database)指的是以图数据结构的形式来存储和查询数据的数据库。

    知识图谱中,知识的组织形式采用的就是图结构,所以非常适合用图库进行存储。

    图形数据库优势

    在需要表示多对多关系时,我们常常需要创建一个关联表来记录不同实体的多对多关系。如果两个实体 之间拥有多种关系,那么我们就需要在它们之间创建多个关联表。而在一个图形数据库中,我们只需要 标明两者之间存在着不同的关系。如果希望在两个结点集间建立双向关系,我们就需要为每个方向定义 一个关系。 也就是说,相对于关系型数据库中的各种关联表,图形数据库中的关系可以通过关系属性这 一功能来提供更为丰富的关系展现方式。因此相较于关系型数据库,图形数据库的用户在对现实进行抽 象时将拥有一个额外的武器,那就是丰富的关系。

    image-20220519174213280

    优势总结:

    • 性能上,对长程关系的查询速度快
    • 擅于发现隐藏的关系,例如通过判断图上两点之间有没有走的通的路径,就可以发现事物间的关联

    Neo4j安装

    Centos安装

    前提环境:jdk8环境

    特别提醒:neo4j4.0以上需要jdk11以上。

    wget https://dist.neo4j.org/neo4j-community-3.5.17-unix.tar.gz
    tar -xvf neo4j-community-3.5.17-unix.tar.gz
    

    修改配置文件:

    cd neo4j-community-3.5.17
    vi conf/neo4j.conf
    
    dbms.connectors.default_listen_address=0.0.0.0 
    

    image-20220519175817000

    开放对应端口:

    firewall-cmd --zone=public --add-port=7474/tcp --permanent
    firewall-cmd --zone=public --add-port=7687/tcp --permanent
    systemctl reload firewalld
    

    启动:

    bin/neo4j start
    

    image-20220519175945502

    使用浏览器 访问服务器上的 neo4j:默认账号密码都是neo4j

    image-20220519180048613

    第一次登录后,会要求你修改密码,修改完成后,进入首页:

    image-20220519180147345

    新建:

    image-20220519180410370

    执行查询:

    image-20220519180529625

    有时候在执行器中的CQL太长,需要换行时,可以按住shift+enter键。

  • 相关阅读:
    项目经理必备的8个要素:沟通、总结、懂技术
    完工概率计算总结
    PMP--可能会涉及到的计算题
    六顶思考帽子法
    预测技术
    React.Component与React.PureComponent的区别
    简单理解JavaScript,TypeScript和JSX
    自己常用的linux命令
    ES6 promise 用法
    node的express框架接收get/post请求时,参数获取方式
  • 原文地址:https://www.cnblogs.com/wwjj4811/p/16289588.html
Copyright © 2020-2023  润新知