使用搜索服务定义搜索数据
搜索服务定义是一个可自定义的将部分模型项或者关系实体的实例数据进行全文检索的搜索服务,属于服务编排的一种类型。相较于全量数据的全文检索,搜索服务定义是一种对某种场景下内关联模型实例数据的一种“小场景”搜索。当用户的某些业务场景数据量巨大,且对搜索的性能和匹配灵活性要求较高时,需要用户自定义搜索服务的配置和搜索的数据范围。搜索服务定义可以更好的明确用户搜索的场景和意图,也为特定场景下大批量的数据搜索和过滤提高搜索效率,避免在大批量数据中召回干扰信息。
以如下示例场景为例,通过横向搜索和纵向搜索两个维度指导您如何使用搜索服务定义。
示例场景
假设有如下两个数据实体:
- Schools:表示学校,用于存储学校信息(如学校名称、教育程度、学科分类等)。
图1 Schools数据实体
- Students:表示学生,用于存储学生信息(如姓名、性别、年龄、班级、学校等)。其中,学校为“参考对象”类型,参考Schools数据实体。
图2 Students数据实体
并通过这两个数据实体分别创建了如表1所示的数据实例。
数据实体 |
数据实例 |
实例信息 |
---|---|---|
Schools |
清华大学 |
学校名称:清华大学 |
北京大学 |
学校名称:北京大学 |
|
深圳大学 |
学校名称:深圳大学 |
|
Students |
王小华 |
|
吴清 |
|
|
李四 |
|
|
张三 |
|
横向搜索
横向搜索,即在同行业中进行搜索。以查询北京大学的女学生为例,通过搜索服务定义实现该查询,具体操作步骤如下:
- 登录应用运行态。
- 在左侧导航栏中,选择“创建”。 ,单击
- 在展开的“服务定义”页面,设置如下主要信息,单击“保存”。
表2 参数信息 参数
说明
API英文名称
输入“Schoolgirl”。
API中文名称
输入“女学生”。
API英文描述
输入“School girl”。
API中文描述
输入“女学生”。
API责任人
输入当前登录账号,例如“User001”。
- 选择“索引定义”页签,添加“学生姓名”、“性别”和“学校”三个索引。其主要信息如表3所示。
- 选择“服务配置”页签,选择搜索实体(Students),单击“添加”。
图3 服务配置
- 在数据图谱的下方,分别设置如图4所示的实体属性,单击“保存”。
- 单击“发布”。
- 选择“脚本显示”页签,在 的“性别”输入“女”,“学校”输入“北京大学”,单击“运行”。
可在右侧的“输出结果”发现搜索服务定义将北京大学的女学生均搜索出来。
图5 脚本显示 - 选择“数据同步”页签,单击“同步数据”。
- 在弹出的提示框中,单击“确认”。
纵向搜索
纵向搜索,即在不同行业,相同职位中搜索。以查找名字中带有“华”字的信息为例,通过搜索服务定义实现该查询,具体操作步骤如下:
- 登录运行态。
- 在左侧导航栏中,选择“创建”。 ,单击
- 在展开的“服务定义”页面,设置如下主要信息,单击“保存”。
表4 参数信息 参数
说明
API英文名称
输入“Name”。
API中文名称
输入“名字”。
API英文描述
输入“Name”。
API中文描述
输入“名字”。
API责任人
输入当前登录账号,例如“User001”。
- 选择“索引定义”页签,单击“添加索引”,添加一个“名字”索引。其主要信息如表5所示。
- 选择“服务配置”页签,添加两个搜索实体(Schools和Students)。
图6 服务配置
- 分别在Schools搜索实体和Students搜索实体的数据图谱下方,设置如下实体名称和属性名称,单击“保存”。
- Schools:“实体名称”选择“Schools”,“属性名称”选择“SchoolsName”。
图7 Schools服务配置
- Students:“实体名称”选择“Students”,“属性名称”选择“Name”。
图8 Students服务配置
- Schools:“实体名称”选择“Schools”,“属性名称”选择“SchoolsName”。
- 单击“发布”。
- 选择“脚本显示”页签,在 的“名字”输入“华”,单击“运行”。
可在右侧的“输出结果”发现搜索服务将“Name”中带有“华”字的数据均搜索出来。
图9 脚本显示 - 选择“数据同步”页签,单击“同步数据”。
- 在弹出的提示框中,单击“确认”。