
# 使用搜索服务定义搜索数据
搜索服务定义是一个可自定义的将部分模型项或者关系实体的实例数据进行全文检索的搜索服务，属于服务编排的一种类型。相较于全量数据的全文检索，搜索服务定义是一种对某种场景下内关联模型实例数据的一种"小场景"搜索。当用户的某些业务场景数据量巨大，且对搜索的性能和匹配灵活性要求较高时，需要用户自定义搜索服务的配置和搜索的数据范围。搜索服务定义可以更好的明确用户搜索的场景和意图，也为特定场景下大批量的数据搜索和过滤提高搜索效率，避免在大批量数据中召回干扰信息。
以如下示例场景为例，通过[横向搜索]和[纵向搜索]两个维度指导您如何使用搜索服务定义。
#### 示例场景
假设有如下两个数据实体：
- Schools：表示学校，用于存储学校信息（如学校名称、教育程度、学科分类等）。
  图1Schools数据实体   
  ![](https://support.huaweicloud.com/bestpractice-idme/figure/zh-cn_image_0000001460847754.png "点击放大") 
- Students：表示学生，用于存储学生信息（如姓名、性别、年龄、班级、学校等）。其中，学校为"参考对象"类型，参考Schools数据实体。
  图2Students数据实体   
  ![](https://support.huaweicloud.com/bestpractice-idme/figure/zh-cn_image_0000001460528354.png "点击放大") 
 
并通过这两个数据实体分别创建了如[表1]所示的数据实例。
 表1数据实例 
| 数据实体     | 数据实例 | 实例信息                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|
| Schools  | 清华大学 | 学校名称：清华大学                                                                                                                                                                                                                                                                                                                                                                            |
| Schools  | 北京大学 | 学校名称：北京大学                                                                                                                                                                                                                                                                                                                                                                            |
| Schools  | 深圳大学 | 学校名称：深圳大学                                                                                                                                                                                                                                                                                                                                                                            |
| Students | 王小华  | - 性别：女  - 年龄：19  - 学校：深圳大学         |
| Students | 吴清   | - 性别：女  - 年龄：20  - 学校：北京大学            |
| Students | 李四   | - 性别：男  - 年龄：21  - 学校：清华大学       |
| Students | 张三   | - 性别：男  - 年龄：20  - 学校：深圳大学   |
   
- 关于数据实体的创建和属性的添加，请参见[创建数据实体](https://support.huaweicloud.com/usermanual-idme/idme_usermanual_0007.html)和[管理数据实体属性](https://support.huaweicloud.com/usermanual-idme/idme_usermanual_0008.html)。
- 关于数据实例的创建，请参见[创建数据实例](https://support.huaweicloud.com/usermanual-idme/idme_clientog_0018.html)。
 #### 横向搜索
横向搜索，即在同行业中进行搜索。以查询北京大学的女学生为例，通过搜索服务定义实现该查询，具体操作步骤如下：
1. 登录应用运行态。
2. 在左侧导航栏中，选择"搜索服务管理 \> 搜索服务定义"，单击"创建"。
3. 在展开的"服务定义"页面，设置如下主要信息，单击"保存"。 
   表2参数信息 
   | 参数      | 说明                    |
   |:---|:---|
   | API英文名称 | 输入"Schoolgirl"。       |
   | API中文名称 | 输入"女学生"。              |
   | API英文描述 | 输入"School girl"。      |
   | API中文描述 | 输入"女学生"。              |
   | API责任人  | 输入当前登录账号，例如"User001"。 |
      
   
   
4. 选择"索引定义"页签，添加"学生姓名"、"性别"和"学校"三个索引。其主要信息如[表3]所示。
   
    表3参数信息 
   |    索引名称     |   学生姓名    |    性别     |    学校     |
   |---|---|---|---|
   | **索引类型**    | 选择"文本"。   | 选择"文本"。   | 选择"文本"。   |
   | **分词方法**    | 选择"普通分词"。 | 选择"不分词"。  | 选择"不分词"。  |
   | **分词选项**    | 选择"不涉及"。  | 选择"不涉及"。  | 选择"不涉及"。  |
   | **作为过滤条件**  | 选择"N"。    | 选择"Y"。    | 选择"Y"。    |
   | **参与关键词搜索** | 选择"Y"。    | 选择"Y"。    | 选择"Y"。    |
   | **展示**      | 选择"Y"。    | 选择"Y"。    | 选择"Y"。    |
   | **匹配方法**    | 选择"精确匹配"。 | 选择"精确匹配"。 | 选择"精确匹配"。 |
      
   
   
5. 选择"服务配置"页签，选择搜索实体（Students），单击"添加"。 
   图3服务配置   
   ![](https://support.huaweicloud.com/bestpractice-idme/figure/zh-cn_image_0000001470929530.png "点击放大")
   
   
6. 在数据图谱的下方，分别设置如[图4]所示的实体属性，单击"保存"。
   
   图4选择属性名称   
   ![](https://support.huaweicloud.com/bestpractice-idme/figure/zh-cn_image_0000001521573045.png "点击放大")
   
   
7. 单击"发布"。
8. 选择"脚本显示"页签，在"验证环境 \> 输入参数"的"性别"输入"女"，"学校"输入"北京大学"，单击"运行"。 
   可在右侧的"输出结果"发现搜索服务定义将北京大学的女学生均搜索出来。
   图5脚本显示   
   ![](https://support.huaweicloud.com/bestpractice-idme/figure/zh-cn_image_0000001521573301.png "点击放大")
   
   
9. 选择"数据同步"页签，单击"同步数据"。
10. 在弹出的提示框中，单击"确认"。
 
 #### 纵向搜索
纵向搜索，即在不同行业，相同职位中搜索。以查找名字中带有"华"字的信息为例，通过搜索服务定义实现该查询，具体操作步骤如下：
1. 登录运行态。
2. 在左侧导航栏中，选择"搜索服务管理 \> 搜索服务定义"，单击"创建"。
3. 在展开的"服务定义"页面，设置如下主要信息，单击"保存"。 
   表4参数信息 
   | 参数      | 说明                    |
   |:---|:---|
   | API英文名称 | 输入"Name"。             |
   | API中文名称 | 输入"名字"。               |
   | API英文描述 | 输入"Name"。             |
   | API中文描述 | 输入"名字"。               |
   | API责任人  | 输入当前登录账号，例如"User001"。 |
      
   
   
4. 选择"索引定义"页签，单击"添加索引"，添加一个"名字"索引。其主要信息如[表5]所示。
   
    表5参数信息 
   |    索引名称     |  输入"名字"。  |
   |---|---|
   | **索引类型**    | 选择"文本"。   |
   | **分词方法**    | 选择"单字分词"。 |
   | **分词选项**    | 选择"全拼"。   |
   | **作为过滤条件**  | 选择"Y"。    |
   | **参与关键词搜索** | 选择"Y"。    |
   | **展示**      | 选择"Y"。    |
   | **匹配方法**    | 选择"模糊匹配"。 |
      
   
   
5. 选择"服务配置"页签，添加两个搜索实体（Schools和Students）。 
   图6服务配置   
   ![](https://support.huaweicloud.com/bestpractice-idme/figure/zh-cn_image_0000001511507541.png "点击放大")
   
   
6. 分别在Schools搜索实体和Students搜索实体的数据图谱下方，设置如下实体名称和属性名称，单击"保存"。 
   - Schools："实体名称"选择"Schools"，"属性名称"选择"SchoolsName"。
     图7Schools服务配置   
     ![](https://support.huaweicloud.com/bestpractice-idme/figure/zh-cn_image_0000002077007505.png "点击放大") 
   
   - Students："实体名称"选择"Students"，"属性名称"选择"Name"。
     图8Students服务配置   
     ![](https://support.huaweicloud.com/bestpractice-idme/figure/zh-cn_image_0000002040810560.png "点击放大") 
   
   
   
   
7. 单击"发布"。
8. 选择"脚本显示"页签，在"验证环境 \> 输入参数"的"名字"输入"华"，单击"运行"。 
   可在右侧的"输出结果"发现搜索服务将"Name"中带有"华"字的数据均搜索出来。
   图9脚本显示   
   ![](https://support.huaweicloud.com/bestpractice-idme/figure/zh-cn_image_0000001511115701.png "点击放大")
   
   
9. 选择"数据同步"页签，单击"同步数据"。
10. 在弹出的提示框中，单击"确认"。
 
