修改密码

请输入密码
请输入密码 请输入8-64长度密码 和 email 地址不相同 至少包括数字、大写字母、小写字母、半角符号中的 3 个
请输入密码
提交

修改昵称

当前昵称:
提交

申请证书

证书详情

Please complete this required field.

  • Ultipa Graph V4

Standalone

Please complete this required field.

Please complete this required field.

服务器的MAC地址

Please complete this required field.

Please complete this required field.

取消
申请
ID
产品
状态
核数
申请天数
审批时间
过期时间
MAC地址
申请理由
审核信息
关闭
基础信息
  • 用户昵称:
  • 手机号:
  • 公司名称:
  • 公司邮箱:
  • 地区:
  • 语言:
修改密码
申请证书

当前未申请证书.

申请证书
Certificate Issued at Valid until Serial No. File
Serial No. Valid until File

Not having one? Apply now! >>>

ProductName CreateTime ID Price File
ProductName CreateTime ID Price File

No Invoice

v5.0
搜索
    v5.0

      图模式

      概述

      图模式用于匹配图中的路径模式列表,由三部分依次组成:

      • 匹配模式(可选)
      • 路径模式列表
      • WHERE从句(可选)

      <graph pattern> ::= 
        [ <match mode> ] <path pattern list> [ <where clause> ]
      
      <path pattern list> ::= 
        <path pattern> [ { "," <path pattern> }... ]
      

      路径模式列表包含一个或多个路径模式。每个路径模式在图中进行独立匹配,获得一个结果集。最终结果是各结果集基于共同元素变量(如果有)进行Equi-Join(等值连接)或笛卡尔积后的结果。

      示例图

      CREATE GRAPH myGraph { 
        NODE User ({name string}),
        NODE City ({name string}),
        EDGE Follows ()-[{}]->(),
        EDGE LivesIn ()-[{}]->()
      } PARTITION BY HASH(Crc32) SHARDS [1]
      

      INSERT (brainy:User {_id: "U01", name: "Brainy"}),
             (rowlock:User {_id: "U02", name: "rowlock"}),
             (purplechalk:User {_id: "U03", name: "purplechalk"}),
             (quickfox:User {_id: "U04", name: "QuickFox"}),
             (quasar92:User {_id: "U05", name: "Quasar92"}),
             (mochaeach:User {_id: "U06", name: "mochaeach"}),
             (london:City {_id: "C01", name: "London"}),
             (newyork:City {_id: "C02", name: "New York"}),
             (rowlock)-[:Follows]->(brainy),
             (purplechalk)-[:Follows]->(brainy),
             (quickfox)-[:Follows]->(brainy),
             (rowlock)-[:Follows]->(mochaeach),
             (purplechalk)-[:Follows]->(mochaeach),
             (quickfox)-[:Follows]->(mochaeach),
             (quasar92)-[:Follows]->(mochaeach),
             (quickfox)-[:LivesIn]->(london),
             (rowlock)-[:LivesIn]->(newyork),
             (purplechalk)-[:LivesIn]->(newyork)
      

      相交路径

      获取同时关注Branymochaeach且住在New York的用户:

      MATCH ({name: 'Brainy'})<-[:Follows]-(u:User)-[:Follows]->({name: 'mochaeach'}), 
            (u)-[:LivesIn]->({name: 'New York'})
      RETURN u.name
      

      两个路径模式拥有共同变量u,所以进行Equi-join(等值连接):

      结果:

      u.name
      rowlock
      purplechalk

      不相交路径

      获取关注Brainy的用户和住在New York的用户:

      MATCH (u1:User)-[:Follows]->({name: 'Brainy'}),
            (u2:User)-[:LivesIn]->({name: 'New York'})
      RETURN u1.name, u2.name
      

      两个路径模式没有共同变量,所以进行笛卡尔积:

      结果:

      u1.name u2.name
      rowlock rowlock
      rowlock purplechalk
      purplechalk rowlock
      purplechalk purplechalk
      QuickFox rowlock
      QuickFox purplechalk

      匹配模式

      指定的匹配模式应用到图模式中所有的路径模式。匹配模式有两种:

      匹配模式
      描述
      DIFFERENT EDGES 默认项,图模式匹配的记录中不允许出现重复边,对点没有限制
      REPEATABLE ELEMENTS 没有限制

      示例图

      CREATE GRAPH myGraph { 
        NODE User ({name string}),
        NODE City ({name string}),
        EDGE Follows ()-[{}]->(),
        EDGE LivesIn ()-[{}]->()
      } PARTITION BY HASH(Crc32) SHARDS [1]
      

      INSERT (quickfox:User {_id: "U01", name: "QuickFox"}),
             (brainy:User {_id: "U02", name: "Brainy"}),
             (rowlock:User {_id: "U03", name: "rowlock"}),
             (london:City {_id: "C01", name: "London"}),
             (newyork:City {_id: "C02", name: "New York"}),
             (quickfox)-[:Follows]->(brainy),
             (quickfox)-[:Follows]->(rowlock),
             (rowlock)-[:LivesIn]->(newyork),
             (quickfox)-[:LivesIn]->(london),
             (rowlock)-[:LivesIn]->(london)
      

      DIFFERENT EDGES

      本查询获取与QuickFox相连的点,这些点同时与其他点相连:

      MATCH DIFFERENT EDGES ({name: "QuickFox"})-[e1]-(n), (n)-[e2]-(m)
      RETURN collect_list(n._id)
      

      结果:

      n._id
      ["U03","U03","C01"]

      REPEATABLE ELEMENTS

      比较下面使用REPEATABLE ELEMENTS匹配模式查询的结果:

      MATCH REPEATABLE ELEMENTS ({name: "QuickFox"})-[e1]-(n), (n)-[e2]-(m)
      RETURN collect_list(n._id)
      

      结果:

      n._id
      ["U02","U03","U03","U03","C01","C01"]

      使用DIFFERENT EDGES时确保边的唯一绑定

      使用DIFFERENT EDGES时,只有确保一条边不与多个变量绑定的记录能够保留。因此,如果在图模式中重复使用一个边变量,不会有结果返回。参考以下例子:

      MATCH DIFFERENT EDGES ()-[e]->(), ()-[e]->()
      RETURN e
      

      MATCH DIFFERENT EDGES ()-[e]->()-[e]->()
      RETURN e
      
      请完成以下信息后可下载此书
      *
      公司名称不能为空
      *
      公司邮箱必须填写
      *
      你的名字必须填写
      *
      你的电话必须填写
      *
      你的电话必须填写