
# 非纯脚本服务中，图查询类型中的完全匹配和可选匹配有什么区别？
#### 什么是图查询类型
图查询是指在图数据库中执行的查询操作，用于从图形结构的数据集中检索信息。通过在非纯脚本服务中灵活配置图查询类型，然后对图数据库执行查询操作，从而获得完全匹配或部分匹配的返回结果。图查询类型包括完全匹配和可选匹配两种查询方式。
- 完全匹配：在所有模型路径均存在实例关联时，能高效检索完整路径，常用于实例关系与模型路径完全匹配的场景。
- 可选匹配：在部分模型路径不存在实例关联时，仍将返回已匹配的结果，适用于探索分析可能存在断点的模型路径。
 
#### 完全匹配与可选匹配返回结果对比示例
例如，假设在学校选课系统中有Students（学生）、Course（课程）、Teachers（教师）和Classroom（教室）四种数据实体，同时这四种数据实体之间存在的关系实体有Elective（学生选修课程）、Teach（教师教授课程）和StudentsRelationshipClassroom（学生在某教室上课）。
并为以上数据实体和关系实体分别创建了如[表1]所示的数据实例，且确保这些数据已入图，如[图1]所示。
 表1数据实例 
| 实体        | 数据实例         | 实例信息                                                                                                                                  |
|:---|:---|:---|
| Students  | Student001   | ID：S001 名称：Alice                                                                         |
| Students  | Student002   | ID：S002 名称：Bob                                                                           |
| Course    | Course001    | ID：C001 名称：Mathematics                                                                  |
| Course    | Course002    | ID：C002 名称：Physics                                                                        |
| Teachers  | Teacher001   | ID：T001 名称：Mr. Smith                                                                   |
| Teachers  | Teacher002   | ID：T002 名称：Ms. Johnson                                                                   |
| Classroom | Classroom001 | ID：R101                                                                                                                               |
| Classroom | Classroom002 | ID：R102                                                                                                                               |
| Elective  | Elective001  | ID：S001_C001 源端关联属性：S001 目标端关联属性：C001 |
| Elective  | Elective001  | ID：S001_C002 源端关联属性：S001 目标端关联属性：C002     |
| Teach     | Teach001     | ID：T001_C001 源端关联属性：T001 目标端关联属性：C001       |
| Teach     | Teach002     | ID：T002_C002 源端关联属性：T002 目标端关联属性：C002       |
   
图1图数据库中的数据实例展示效果   
![](https://support.huaweicloud.com/idme_faq/figure/zh-cn_image_0000002181369052.png "点击放大")
根据上面提供的数据，设计并编排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图结构示例   
![](https://support.huaweicloud.com/idme_faq/figure/zh-cn_image_0000002216781141.png)
运行API时，以查询Student001为例，即将请求参数"Students_ID"设为"S001"，查询结果如下：
如果"图查询类型"被设为"完全匹配"，因为图实例中缺少Student001和Classroom001的关系，整个匹配将失败，查询不会返回相应结果，如[图3]所示。**然而，如果[图2]中如果没有Classroom实体，** "完全匹配"**将会更高效地检索出Student001所选修的课程和对应课程教学的老师** **。**
图3**完全匹配返回结果示例**   
![](https://support.huaweicloud.com/idme_faq/figure/zh-cn_image_0000002216702497.png)
如果"图查询类型"被设为"可选匹配"，即使图实例中缺少Student001和Classroom001的关系，仍将返回已成功匹配的信息，如[图4]所示。
图4**可选匹配返回结果示例**   
![](https://support.huaweicloud.com/idme_faq/figure/zh-cn_image_0000002216677645.png)
