修改密码

请输入密码
请输入密码 请输入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

      HDC图查询

      概述

      要在HDC图上执行图查询,请使用以下语法:

      exec{
        <query>
      } on <hdcGraphName>
      

      HDC图支持从数据库检索数据的查询,并且查询效率更高。但是,请留意,任何试图在HDC图上写入数据的操作都将失败。

      示例图集

      在一个空图集中,逐行运行以下UQL语句,创建示例图集:

      create().node_schema("entity").edge_schema("link")
      create().edge_property(@link, "weight", float)
      insert().into(@entity).nodes([{_id:"A"},{_id:"B"},{_id:"C"},{_id:"D"}])
      insert().into(@link).edges([{_from:"A", _to:"B", weight:1},{_from:"A", _to:"C", weight:1.5},{_from:"A", _to:"D", weight:0.5},{_from:"B", _to:"C", weight:2},{_from:"C", _to:"D", weight:0.5}])
      

      HDC图查询

      为全图创建名为hdcGraph的HDC图:

      hdc.graph.create("hdcGraph", {
        nodes: {"*": ["*"]},
        edges: {"*": ["*"]},
        direction: "undirected",
        load_id: true,
        update: "static",
        query: "query",
        default: false
      }).to("hdc-server-1")
      

      hdcGraph上执行ab()查询:

      exec{
        ab().src({_id == "A"}).dest({_id == "C"}).depth(2) as p
        return p
      } on hdcGraph
      

      结果:

      p
      A -> B -> C
      A -> D <- C

      hdcGraph上执行khop()查询:

      exec{
        khop().src({_id == "A"}).depth(1).direction(right) as n
        return count(n)
      } on hdcGraph
      

      结果:

      count(n)
      3

      限制图遍历方向

      在创建HDC图时,若direction选项设定为inout,图遍历会被对应限制在入边或出边上。若在查询中从缺失的方向进行遍历,会引发报错或生成空结果。

      创建HDC图hdcGraph_in_edges,其中包含所有点和入边:

      hdc.graph.create("hdcGraph_in_edges", {
        nodes: {"*": ["*"]},
        edges: {"*": ["*"]},
        direction: "in",
        load_id: true,
        update: "static",
        query: "query",
        default: false
      }).to("hdc-server-1")
      

      本条khop()查询试图在hdcGraph_in_edges上寻找出边(右向边),没有结果返回。

      exec{
        khop().src({_id == "A"}).depth(1).direction(right) as n
        return count(n)
      } on hdcGraph_in_edges
      

      结果:

      count(n)
      0

      HDC图不包含点ID

      在创建HDC图时,若load_id选项设定为false,则HDC图不包含点的_id值。若在查询或算法中引用了_id,则会引发报错或生成空结果。算法回写文件会用_uuid值替代_id值。

      创建HDC图hdcGraph_no_id,其中不包含点的_id值:

      hdc.graph.create("hdcGraph_no_id", {
        nodes: {"*": ["*"]},
        edges: {"*": ["*"]},
        direction: "undirected",
        load_id: false,
        update: "static",
        query: "query",
        default: false
      }).to("hdc-server-1")
      

      本条ab()查询使用_id过滤hdcGraph_no_id上的点,由于HDC图不包含点的_id,所以引发报错:

      exec{
        ab().src({_id == "A"}).dest({_id == "C"}).depth(2) as p
        return p{*}
      } on hdcGraph_no_id
      

      HDC图不包含属性

      如果创建HDC图时未包含某些属性,在查询或算法引用这些属性时会引发报错或生成空结果。

      创建HDC图hdcGraph_no_weight,其中包含所有点以及边@link的系统属性:

      hdc.graph.create("hdcGraph_no_weight", {
        nodes: {"*": ["*"]},
        edges: {"link": []},
        direction: "undirected",
        load_id: true,
        update: "static",
        query: "query",
        default: false
      }).to("hdc-server-1")
      

      本条ab()查询在hdcGraph_no_weight上查找最短路径,以边属性@link.weight计算权重。由于weight属性缺失,查询会引发报错:

      exec{
        ab().src({_id == "A"}).dest({_id == "C"}).depth(2).shortest(@link.weight) as p
        return p
      } on hdcGraph_no_weight
      

      不支持数据写入

      以下查询会引发报错,报错信息显示不支持在HDC图进行点插入操作:

      exec{
        insert().into(@entity).nodes([{_id: "E"}])
      } on hdcGraph
      
      请完成以下信息后可下载此书
      *
      公司名称不能为空
      *
      公司邮箱必须填写
      *
      你的名字必须填写
      *
      你的电话必须填写
      *
      你的电话必须填写