更新时间:2024-11-01 GMT+08:00

可视化查询图

在图引擎编辑器中,您可以使用拖拽的方式创建图查询语句,并且可以直接预览查询结果,无需手动编写任何代码。

操作步骤

  1. 在图引擎编辑器左侧的区域内选择“可视化查询”模块。
    图1 可视化查询
  2. 在画布中添加点
    1. “添加点模式”页签下会展示全图数据中所有的点边label,每个label展示为一个可以拖拽的卡片。您可以单击任意一个点label,直接拖动至左侧画布中。
      画布下方的“Cypher”查询语句会随着您的操作变化。

      此处的点边label和您在Schema编辑章节“元数据”列表中的点边label是相同的。

    2. 将想要查询的label拖动到画布后,单击“查询”按钮,图查询结果会展示在画布的右侧。
      画布下方“结果展示区”会有Cypher查询语句的运行记录,单击“查询结果”可以查看cypher查询语句运行结果。
      图2 查询结果展示
      画布中只存在一个子图模式时才能输出查询结果。若存在多个不连通的子图或孤立点时,必须先添加边连通各子图或孤立点,还可以通过设置多标签的方式重新构建您的查询模式,否则单击“查询”按钮,会提示存在多个子图模式。
      图3 存在多个子图模式
  3. 添加点过滤条件
    单击画布中的点,左侧区域会自动跳转到“过滤”页签,在点过滤页签中您可以输入相关项的值(例如标签、点ID、属性过滤条件),使画布中的点label符合相应约束。
    图4 添加点过滤条件
    • 点V1:Cypher变量ID(画布下方Cypher查询语句中的点标识),以拖动到画布中的点先后顺序命名(例如:V1,V2……)。
    • 标签:对一个点label设置一个或多个标签值(设置的多个标签之间是或的关系)。
    • 点ID:相当于一个过滤条件,对一个点label添加点ID后,单击“查询”按钮,可将设置相同点ID的点label查询出来。
    • 过滤条件:对点label的属性值进行设置。当前不支持多值类型属性过滤(多值:一个属性有多个属性值)。
      • 属性:标签所包含的属性。
      • 操作符:支持比较运算符(>,>=,<,<=,=,<>),空值判断运算符(is null(空值), is not null(非空值))和字符串比较运算符(starts with,ends with,contains)。

        starts with表示是否以某字符串开头,ends with表示是否包含某字符串,contains表示是否包含某字符串。

      • 值:输入的属性值。属性值类型应与元数据中的属性类型一致,如果是字符型必须要用''(单引号)标记才可以。
      • 删除:单击可删除本行过滤条件。
    • “+”按钮:新增一个过滤条件。
    • “删除”按钮:删除已添加的点过滤条件。

    上述点过滤条件设置完成后,您可以重新单击画布中“查询”按钮,在画布右侧将展示新的查询结果。

  4. 在画布中添加边(连接画布中的两点):

    双击某一个点,点的边框变为灰色(注意鼠标不要移出灰色边框外),可以从该点拖出一条边连接到另一点。

    画布下方的“Cypher”查询语句会随着您的操作变化。

    图5 灰色边框
    图6 添加边
  5. 添加边过滤条件

    单击画布中添加的边,左侧区域会自动跳转到“边过滤”页签,在边过滤页签中您可以选择相关项的值(例如标签、方向、跳数、属性过滤条件),使画布中的边label符合相应约束。

    图7 添加边过滤条件
    • 边e2:Cypher变量 ID,以画布中的添加边的先后顺序命名(例如:e1,e2……)。
    • 标签:对一个边label设置一个或多个边标签值(设置的多个边标签之间是或的关系)。
    • 方向:对该边label的指向进行选择。

      开关开启时为有向边,关闭时为无向边(或称双向边)。

      为有向边时,画布中的箭头指示了当前该边的方向,单击“改变方向”按钮可以改变当前选中边在画布中的方向。

    • 跳数:边的跳数默认为1,取值范围为 [0,20),有两种输入格式:单值输入与区间输入。
      • 单值输入时接收一个整数,代表当前边模式的跳数。
      • 区间输入接收两个整数,格式为minHops..maxHops,如2..3,表示当前边模式的跳数在[2,3]区间之内。
    • 过滤条件:对边label的属性值进行设置。当前不支持多值类型属性过滤(多值:一个属性有多个属性值)。
      • 属性:标签所包含的属性。
      • 操作符:支持比较运算符(>,>=,<,<=,=,<>),空值判断运算符(is null(空值), is not null(非空值))和字符串比较运算符(starts with,ends with,contains)。

        starts with表示是否以某字符串开头,ends with表示是否包含某字符串,contains表示是否包含某字符串。

      • 值:输入的属性值。属性值类型应与元数据中的属性类型一致,如果是字符型必须要用''(单引号)标记才可以。
      • 删除:单击可删除已添加的边过滤条件。
    • “+”按钮:可以新增一个属性过滤条件。

      当过滤条件多于一条时,单击AND旁,可以选择过滤条件间的逻辑关系为并(AND)还是或(OR)。

      图8 选择逻辑关系

      AND的逻辑运算优先级高于OR,需要合理规划各过滤条件的顺序。运算顺序如下:

      1. 先运算所有的AND运算,存在一个假即为假
      2. 再运算所有的OR,存在一个真即为真。

      例如下图所示:边过滤条件为 userid < 100 AND gender = 'male' OR userid > 50 AND age = '18-24'。

      根据以上运算顺序(先运算AND再运算OR),即:

      先计算(userid < 100 AND gender = 'male') 和 (userid > 50 AND age = '18-24'),结果分别记为result1,result2;

      再计算 result1 OR result2。

      • “删除”按钮:可以删除已添加的过滤条件。

      上述边过滤条件设置完成后,您可以重新单击画布中“查询”按钮,在画布右侧将展示新的查询结果。