通过


教程:使用 GQL 查询图形

注释

此功能目前处于公开预览状态。 此预览版在没有服务级别协议的情况下提供,不建议用于生产工作负荷。 某些功能可能不受支持或者受限。 有关详细信息,请参阅 Microsoft Azure 预览版补充使用条款

在本教程步骤中,你将在代码编辑器中使用 GQL(图形查询语言)查询图形。 GQL 为复杂的图形模式和分析提供强大的查询功能。

切换到代码编辑器模式

按照以下步骤切换到代码编辑器,并使用 GQL 开始查询图形:

  1. 转到图形的主页。

  2. 从顶部菜单中选择 “代码编辑器 ”。

    显示选择“代码编辑器”的结果的屏幕截图。

运行基本查询

  1. 在输入字段中输入 GQL 查询。 例如,对所有订单进行计数:

    MATCH (n:`Order`) RETURN count(n) AS num_orders
    
  2. 选择 “运行查询 ”以执行查询。

此查询查找具有Order标签的所有节点,对其进行计数,并返回总计。num_orders 这是一种确认图形具有数据的简单方法。 下图显示了查询的结果:

显示运行 GQL 查询以计算所有订单的结果的屏幕截图。

在 GQL 中重新创建查询生成器查询

上一教程步骤中,你使用了查询生成器来查找特定客户购买的产品。 下面是用 GQL 编写的同一查询:

MATCH (c:Customer)-[:purchases]->(o:`Order`)-[:`contains`]->(p:`Product`)
FILTER c.fullName = 'Carla Adams'
RETURN c.fullName, o, p.productName

此查询:

  1. 匹配 "客户→购买→订单→包含→商品" 的模式
  2. 针对名为“Carla Adams”的客户的过滤条件
  3. 返回 客户的全名、订单详细信息和产品名称

下图显示了查询的结果(只显示返回的数据的一部分)。

显示运行 GQL 查询以查找 Carla Adams 购买的产品的结果的屏幕截图。

运行复杂查询

可以运行更复杂的查询,这些查询结合了匹配的图形模式、筛选、聚合、排序和限制:

MATCH (v:Vendor)-[:produces]->(p:`Product`)->(sc:`ProductSubcategory`)->(c:`ProductCategory`), 
      (o:`Order`)-[:`contains`]->(p)
FILTER c.subCategoryName = 'Touring Bikes'
LET vendorName = v.vendorName, subCategoryName = sc.subCategoryName
RETURN vendorName, subCategoryName, count(DISTINCT p) AS num_products, count(o) AS num_orders
GROUP BY vendorName, subCategoryName
ORDER BY num_orders DESC
LIMIT 5

此查询:

  1. 匹配 一种模式,该模式通过供应链将供应商连接到产品,并将订单连接到产品。
  2. 筛选器用于“旅行车”类别的产品。
  3. 定义 供应商和子类别名称的变量。
  4. 返回 供应商名称、子类别名称、不同产品计数和订单计数。
  5. 按供应商和子类别对结果进行分组
  6. 订单计数降序排列结果。
  7. 将结果限制 为前 5 名。

总之,它显示了“旅游自行车”类别中供应产品的前五大供应商,以及他们供应的产品数量以及这些产品拥有的订单数。

这是一个运行 GQL 查询的结果的屏幕截图,用于查找在“旅游自行车”类别中供应产品的前五名供应商。

有关 GQL 语言支持的详细信息,请参阅:

后续步骤