修改密码

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

修改昵称

当前昵称:
提交

申请证书

证书详情

Please complete this required field.

  • Ultipa Blaze (v4)
  • Ultipa Powerhouse (v5)

Standalone

点击

了解 Ultipa Powerhouse (v5)架构中的四大组成部分。

Please complete this required field.

Please complete this required field.

Please complete this required field.

Please complete this required field.

如果不需要 HDC 服务,则此项留空。

Please complete this required field.

如果不需要 HDC 服务,则此项留空。

Please complete this required field.

Please complete this required field.

所有服务器的MAC地址,由换行符或逗号分隔。

Please complete this required field.

Please complete this required field.

取消
申请
ID
产品
状态
核数
Shard 服务最大数量
Shard 服务最大总核数
HDC 服务最大数量
HDC 服务最大总核数
申请天数
审批日期
过期日期
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.2
搜索
    v5.2

      图模式

      概述

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

      • 路径模式列表
      • 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)
      

      相交路径

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

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

      MATCH语句中的两个路径模式声明了共同变量u,因此进行等值连接(Equi-join),即连接u值相等的行,舍弃其他行。

      结果:

      u.name
      rowlock
      purplechalk

      不相交路径

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

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

      MATCH语句中的两个路径模式没有声明共同变量,因此进行笛卡尔乘积,即将一个结果集中的每一行与另一个中的每一行进行连接。

      结果:

      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
      
      请完成以下信息后可下载此书
      *
      公司名称不能为空
      *
      公司邮箱必须填写
      *
      你的名字必须填写
      *
      你的电话必须填写
      *
      你的电话必须填写
      隐私政策
      请勾选表示您已阅读并同意。

      Copyright © 2019-2025 北京同心尚科技发展有限公司-保留所有权利 京ICP备19040872号-1