功能简介
在进行搜索文本召回前,开放搜索会对用户输入关键词进行查询语义分析和处理。其中,同义词功能主要是对查询词进行同义扩展,扩大召回和查询词同义的文档。由于业务场景的多样性,不同行业不同业务都有各自的特殊性,只有具体到应用级别的同义词模型才能保障最优的搜索效果。
OpenSearch提供了丰富的面向特定领域的同义词模型,用户可以基于对应的行业分析器,经过简单的配置训练得到专属的定制同义词模型。整个定制过程,同义词模型训练会自动抽取已有数据进行适配(如果用户已有一些个性化的同义词数据也支持导入优化训练模型,详情可联系技术同学)。
定制召回模型按照存储容量、计算资源、模型训练收费,具体价格请参考OpenSearch-行业算法版计费概述。
快速搭建
召回定制-同义词模型从创建到使用需要经过以下三个步骤:
-
创建召回定制-同义词模型并开启训练;
-
配置查询分析并引用已训练的召回定制-同义词模型;
-
根据业务需求通过干预词典调整召回定制-同义词模型;
创建并训练模型
-
登录开放搜索管理控制台,依次点击OpenSearch-行业算法版->搜索算法中心->召回配置->定制召回模型->创建。
-
按要求填写模型名称,选择同义词模型并选择训练字段,最后点击确认:
在 目标应用 下拉框中选择对应应用,模型名称需为1-30个字符、以字母开头,可包含大小写字母、数字和下划线。
-
模型名称在模型创建后无法修改;
-
训练字段仅支持short_text、text类型;
-
您可以单击训练模型训练同义词模型,或单击查询分析配置在查询分析中使用该模型。单击完成关闭创建页面。
-
创建完成后, 新创建的模型状态为模型不可用,最新版本状态为待训练,在定制召回模型列表页操作一栏中点击训练模型。
-
模型训练根据数据量的大小不同、耗时也不同,一般数小时即可训练完成;
-
模型可重复训练,每次训练完成后,会在详情页中训练历史下新增一个模型版本,编号逐一递增。
-
已训练完成的同义词模型的模型状态为可用,最新版本状态为已训练并就绪。
配置查询分析
配置查询分析规则时,勾选同义词功能,在其词典使用中选择定制模型,定制同义词模型选择上述新建的模型,定制同义词模型版本选择最新版本,干预词典可选,配置完成后,点击确认:在编辑规则弹窗中,勾选功能选择区域的同义词复选框,在右侧展开的同义词配置面板中,词典使用选择定制模型,选择定制同义词模型(例如 my_test)和模型版本(例如 2),并选择干预词典(例如 syn)。
详情页说明
同义词模型列表页介绍
同义词模型类列表页
列表中模型类型包含同义词模型、调权重模型和文本分析器模型,操作列提供详情、训练模型等选项,页面顶部有创建按钮用于新建定制模型。
-
同义词模型列表包含模型名称、模型类型、模型状态、最后训练开始时间、最新版本状态、操作等。
-
已被引用的定制召回模型不可删除;
同义词模型详情页介绍
详情页包含基本信息、配置信息、训练历史三个部分。
1、定制同义词模型训练成功后可点击详情后在点击引用规则下的查看,展示引用当前同义词模型的查询分析规则
在左侧导航栏搜索算法中心 > 召回配置页面,单击定制召回模型页签,在模型列表中找到目标同义词模型,在其操作列单击详情。其中基本信息区域展示创建时间、最后训练开始时间、模型状态(如"可用")和最新版本状态(如"已训练并就绪");配置信息区域展示训练字段(如title);训练历史表格包含模型版本、版本状态、训练开始时间、训练结束时间、引用规则和操作(含删除)列。
2、查看效果测试
在训练历史表格中,找到目标模型版本,单击其操作列的效果测试。在效果测试界面中,可在测试输入框中输入查询词,查看对应的同义词扩展结果。
3、查看效果对比
页面展示模型差异率,以百分比形式汇总两个模型的同义词结果差异程度,差异词条以红色文字标注。
-
同义词模型可选系统内置模型、当前模型的不同版本,点击对比后,在下方展示同义词效果对比
-
典型case对比展示最多200个同义词结果不同的情况,包含文本、同义词模型1结果、同义词模型2结果
-
可在测试文本中输入测试query,测试相应的同义词结果
搜索测试页面展示
-
可以在开放搜索管理控制台,左侧菜单依次点击OpenSearch-行业算法版->功能扩展->搜索测试页面,测试效果:
在搜索测试页面输入查询词 default:'药品',经过同义词扩展后,实际查询词被改写为 (default:'药品') OR (default:'药物') OR (default:'药用' AND default:'品') OR (default:'医疗' AND default:'药品')。右侧 Query改写分析 面板中 同义词 行显示扩展结果为 药物/药用品/医疗药品 药品。
-
如需查看每次搜索的请求消耗了多少计算资源,可以添加自定义参数:fetch=result:compute_cost,并开启源码模式:在搜索测试页面,设置查询子句为
default:'药品',参数中添加fetch=result:compute_cost以获取算力消耗(LCU)明细。搜索结果 JSON 响应的compute_cost字段包含algos数组,其中可查看同义词算法(function: "synonym")对应的计算开销(如value: 5),以及索引整体 LCU 消耗值(如value: 6.44)。 -
如果双模型或多模型进行索引搜索时中间以OR做连接。
查询语句示例为 zw_ds_model:'搜索' OR it_model:'黑',返回的 compute_cost 结构中包含 algos 数组,每个元素展示一个 analyzer 的 name 和计算代价 value,其中 zw_ds_model 和 it_model 的 value 均为 2.1,表示两个模型各自的计算消耗。
功能限制
-
该功能仅在行业算法版-独享集群实例中支持;
-
单个实例最多创建5个定制模型,单个模型的版本个数最多为3个;
-
基于应用创建的定制召回模型不可跨应用配置;