修改密码

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

修改昵称

当前昵称:
提交

申请证书

证书详情

Please complete this required field.

  • Ultipa Blaze (v4)

Standalone

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.0
搜索
    v5.0

      路径模式

      概述

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

      <path pattern> ::=
        [ <path variable declaration> ] [ <path pattern prefix> ] <path pattern expression>
          
      <path pattern expression> ::=
        <path term> | <path term union> | <path term multiset alteration>
      

      路径项

      一个路径项由单个或多个元素模式带括号路径模式带量词路径模式连接组成,并遵循路径的拓扑规则,即以点开始、以点结束,点、边交替出现

      <path term> ::= 
        <path factor> [ <path factor>... ]
          
      <path factor> ::=
        <element pattern> | <parenthesized path pattern> | <quantified path pattern>
      

      元素模式

      一个路径项可通过点模板和边模板交替连接构建。例如,以下路径项从Brainy出发,通过Joins出边,连接到Club点:

      (:User {name: 'Brainy'})-[:Joins]->(:Club)
      

      通过继续连接点模式和边模式,可创建更为复杂的路径模式。以下路径项描述Brainymochaeach加入同一俱乐部,这些Club点与变量c绑定:

      (:User {name: 'Brainy'})-[:Joins]->(c:Club)<-[:Joins]-(:User {name: 'mochaeach'})
      

      以下路径项通过重复利用变量a,构建起始点相同的环形结构:

      (a:Account)-[:Owns]->(:Card)-[:Transfers]->(:Card)-[:Transfers]->(:Card)<-[:Owns]-(a)
      

      带括号路径模式

      将子路径或完整路径置于一对括号()里即形成一个带括号路径模式:

      <parenthesized path pattern> ::=
        "(" [ <path mode prefix> ] <path pattern expression> [ <where clause> ] ")"
      

      带括号路径模式目前仅可与量词一起使用,构成带量词路径

      带量词路径模式

      量词附加在边模式或带括号路径模式上即形成变长的带量词路径

      路径项并集和多集交替

      路径项并集和多集交替功能尚未完全支持。

      <path pattern union> ::=
        <path term> "|" <path term> [ { "|" <path term> }... ]
        
      <path multiset alternation> ::=
        <path term> "|+|" <path term> [ { "|+|" <path term> }... ]
      

      示例图

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

      INSERT (rowlock:User {_id: 'U01', name: 'rowlock'}),
             (lionbower:User {_id: 'U02', name: 'lionbower'}),
             (mochaeach:User {_id: 'U03', name: 'mochaeach'}),
             (c01:Club {_id: 'C01'}),
             (c02:Club {_id: 'C02'}),
             (rowlock)-[:Joins]->(c01),
             (lionbower)-[:Joins]->(c01),
             (lionbower)-[:Joins]->(c02),
             (mochaeach)-[:Joins]->(c02)
      

      路径模式并集使用竖线|合并路径项,绑定到同一变量的记录会合并,重复项会被舍弃。

      MATCH ({_id: "C01"})<-[:Joins]-(u:User) | ({_id: "C02"})<-[:Joins]-(u:User)
      RETURN COLLECT_LIST(u.name) AS names
      

      结果:

      names
      ["rowlock", "lionbower", "mochaeach"]

      路径多集交替使用多集交替运算符|+|合并路径项,绑定到同一变量的记录会合并,重复项会保留。

      MATCH ({_id: "C01"})<-[:Joins]-(u:User) |+| ({_id: "C02"})<-[:Joins]-(u:User)
      RETURN COLLECT_LIST(u.name) AS names
      

      结果:

      names
      ["rowlock", "lionbower", "lionbower", "mochaeach"]

      请留意,路径模式并集和路径多集交替中的路径项只能引用在该路径项中声明的元素变量。例如,以下查询存在语法错误:

      MATCH (:Club {code: "C01"})<-[]-(a) | 
            (:Club {code: "C02"})<-[]-(b WHERE a.name = b.name)
      RETURN a, b
      

      路径变量声明

      在路径模式的开头使用运算符=声明路径变量。路径变量绑定一组边。

      路径变量p绑定由Follows出边连接任意两个点的路径:

      MATCH p = ()-[:Follows]->()
      RETURN p
      

      路径模式前缀

      路径模式前缀有两种:

      示例图

      CREATE GRAPH myGraph
      

      INSERT (c1:default {_id: 'C1'}),
             (c2:default {_id: 'C2'}),
        	   (c3:default {_id: 'C3'}),
             (c4:default {_id: 'C4'}),
             (c1)-[:default]->(c2),
             (c2)-[:default]->(c1),
             (c2)-[:default]->(c3),
             (c3)-[:default]->(c4)
      

      路径约束

      路径约束控制路径的遍历方式以及是否可以重复访问点或边。路径约束写在路径模式表达式或带括号路径模式的开头。

      路径约束
      描述
      TRAIL 默认项,路径可能有重复点,但没有重复边
      ACYCLIC 路径没有重复点
      SIMPLE 路径没有重复点,除非重复点为路径起点和终点,即形成一个环
      WALK 没有限制

      暂不支持ACYCLICSIMPLEWALK

      使用不同的路径约束寻找从C1出发的1~3步出边路径:

      MATCH p = WALK ({_id: 'C1'})->{1,3}()
      RETURN p
      

      MATCH p = ({_id: 'C1'})->{1,3}()
      RETURN p
      

      MATCH p = ACYCLIC ({_id: 'C1'})->{1,3}()
      RETURN p
      

      MATCH p = SIMPLE ({_id: 'C1'})->{1,3}()
      RETURN p
      

      结果:p

      路径选择

      路径选择前缀用于从匹配结果的每个分区选择部分路径。当匹配的路径包含多个起点和终点时,系统会根据不同的起、终点对将结果进行概念上的分区。路径选择在每个分区中分别进行,最终的结果是从所有分区选择的路径的并集。

      路径选择 描述
      ALL 默认项,选择全部
      ANY 从每个分区选择任意一条路径
      ANY k 从每个分区选择任意k(非负整数)条路径;若一个分区的路径数量少于k,则保留全部路径
      ALL SHORTEST 详见最短路径
      ANY SHORTEST
      SHORTEST k
      SHORTEST k GROUP

      寻找C1和目标点C3C4间的1~3步路径,分别选择ALL(默认)和ANY

      MATCH p = ({_id: 'C1'})-{1,3}(target WHERE target._id IN ['C3', 'C4'])
      RETURN p
      

      MATCH p = ANY ({_id: 'C1'})-{1,3}(target WHERE target._id IN ['C3', 'C4'])
      RETURN p
      

      结果:p

      组合使用

      同时使用路径约束和路径选择时,路径选择写在路径约束前面。

      (从每个分区)返回任意一条从C1出发的1~3步出边WALK路径:

      MATCH p = ANY WALK ({_id: 'C1'})->{1,3}()
      RETURN p
      

      特殊说明

      边模式并置

      两个并置的边模式之间隐式存在一个空点模式。例如,

      (:User)-[]--[]-(u)
      

      此路径项隐式扩展为:

      (:User)-[]-()-[]-(u)
      

      在路径项中,不可将右侧带有减号的标记(]-<--)与左侧带有减号的标记(-[->-)并置,因为这种组合会引入注释符号--。详情参考注释

      点模式并置

      点模式并置仅支持带量词路径

      请完成以下信息后可下载此书
      *
      公司名称不能为空
      *
      公司邮箱必须填写
      *
      你的名字必须填写
      *
      你的电话必须填写
      *
      你的电话必须填写
      隐私政策 数据处理协议
      请勾选表示您已阅读并同意。

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