文档首页/ 工业数字模型驱动引擎/ 常见问题/ 数字主线引擎相关问题/ 非纯脚本服务中,图查询类型中的完全匹配和可选匹配有什么区别?
更新时间:2025-04-21 GMT+08:00
分享

非纯脚本服务中,图查询类型中的完全匹配和可选匹配有什么区别?

什么是图查询类型

图查询是指在图数据库中执行的查询操作,用于从图形结构的数据集中检索信息。通过在非纯脚本服务中灵活配置图查询类型,然后对图数据库执行查询操作,从而获得完全匹配或部分匹配的返回结果。图查询类型包括完全匹配和可选匹配两种查询方式。

  • 完全匹配:在所有模型路径均存在实例关联时,能高效检索完整路径,常用于实例关系与模型路径完全匹配的场景。
  • 可选匹配:在部分模型路径不存在实例关联时,仍将返回已匹配的结果,适用于探索分析可能存在断点的模型路径。

完全匹配与可选匹配返回结果对比示例

例如,假设在学校选课系统中有Students(学生)、Course(课程)、Teachers(教师)和Classroom(教室)四种数据实体,同时这四种数据实体之间存在的关系实体有Elective(学生选修课程)、Teach(教师教授课程)和StudentsRelationshipClassroom(学生在某教室上课)。

并为以上数据实体和关系实体分别创建了如表1所示的数据实例,且确保这些数据已入图,如图1所示。

表1 数据实例

实体

数据实例

实例信息

Students

Student001

ID:S001

名称:Alice

Student002

ID:S002

名称:Bob

Course

Course001

ID:C001

名称:Mathematics

Course002

ID:C002

名称:Physics

Teachers

Teacher001

ID:T001

名称:Mr. Smith

Teacher002

ID:T002

名称:Ms. Johnson

Classroom

Classroom001

ID:R101

Classroom002

ID:R102

Elective

Elective001

ID:S001_C001

源端关联属性:S001

目标端关联属性:C001

Elective001

ID:S001_C002

源端关联属性:S001

目标端关联属性:C002

Teach

Teach001

ID:T001_C001

源端关联属性:T001

目标端关联属性:C001

Teach002

ID:T002_C002

源端关联属性:T002

目标端关联属性:C002

图1 图数据库中的数据实例展示效果
根据上面提供的数据,设计并编排API来构建一个聚合服务,该服务旨在通过查询获取“指定学生所选修的课程,对应课程教学的老师,以及学生在哪个教室上课”这一完整模式的所有组合,从而实现完全匹配和可选匹配的查询效果。参考非纯脚本服务的创建指导,按照表2图2进行配置,并设置输入参数为Students的ID,输出参数包括Students的Name、Classroom的ID、Course的Name和Teachers的Name。
表2 聚合服务的基本信息

参数

说明

API英文名称

输入“ShowMatchs”

API中文名称

输入“ShowMatchs”

API英文描述

输入“ShowMatchs”

API中文描述

输入“对比图查询类型”

API责任人

输入当前登录账号,例如“User001”

数据源

选择图数据库类型的数据源。

初始数据实体

选择“Students”

图查询类型

选择“完全匹配”“可选匹配”

支持服务运行结果保存为数据集

选择“否”

图2 图结构示例

运行API时,以查询Student001为例,即将请求参数“Students_ID”设为“S001”,查询结果如下:

如果“图查询类型”被设为“完全匹配”,因为图实例中缺少Student001和Classroom001的关系,整个匹配将失败,查询不会返回相应结果,如图3所示。然而,如果图2中如果没有Classroom实体,“完全匹配”将会更高效地检索出Student001所选修的课程和对应课程教学的老师

图3 完全匹配返回结果示例

如果“图查询类型”被设为“可选匹配”,即使图实例中缺少Student001和Classroom001的关系,仍将返回已成功匹配的信息,如图4所示。

图4 可选匹配返回结果示例

相关文档