功能介绍
在实际搜索场景中,会经常出现包含同义词的表达。例如,我们希望用户在搜索广东话的同时,也能找出和粤语有关的信息;用户在搜索苹果手机的同时,包含iPhone的内容也能被检索并呈现。在现实生活中,相同语义的表述词汇往往有很多,而用户在检索的时候很难在一条 query 中将它们全部体现,所以识别和提供同义词检索显然可以获得更高的召回率。同义词功能主要是对查询词进行同义扩展,扩大召回和查询词同义的文档。例:“包菜” 存在一个同义词是“圆白菜”,在没有开启同义词功能时,搜索“包菜”时是无法召回文档中仅包含“圆白菜”;开启同义词功能时,则能召回。
功能使用流程
1.开放搜索控制台选择左侧导航栏中的“召回配置”下方对应的“查询分析配置”,选择对应的应用名和应用类型(线上/线下)点击创建。
2.输入“规则名称”,选择“索引范围”,选择“行业类型”,功能选择选中“同义词”,点击“确定”:在弹出的编辑规则对话框中,设置目标应用(引擎类型、应用名称、应用类型)、规则名称、索引范围、行业类型(如电商增强)及Query改写策略(如AND)。在功能选择区域勾选同义词及其他所需功能(如停用词、拼写纠错、词权重、实体识别)。展开同义词配置面板,启用模板使用(电商通用同义词模型)和词典使用(系统内置词典),按需选择干预词典,单击确定完成创建。
注:如果未设置干预词典,则按照系统默认的同义词词典。如果实际使用场景中出现badcase ,可以参考下文配置干预词典。
3.规则创建完毕后,可以进行搜索效果测试:
在查询分析列表中,找到已创建的同义词规则(如 test_tong),单击其操作列的搜索测试。测试效果:在搜索测试页面,将查询语句设为 default:'KFC',子句 config 设为 start:0,hit:10,format:fulljson,参数 qp 设为已创建的查询分析规则(如 test_tong),单击 搜索。页面底部显示实际查询词为 (((default:'kfc') OR (default:'肯德基'))),说明同义词功能已将"KFC"自动扩展为"kfc"和"肯德基"。查看查询分析过程:以查询词 KFC 为例,在查询分析过程对话框中,分析步骤依次包括拼写纠错(-)、归一化(kfc)、分词(kfc)、停用词(-)、同义词(肯德基 kfc)、类目预测,最终 Query 改写结果为 (((default:'kfc') OR (default:'肯德基'))),验证同义词扩展生效。
4.调试无误后,在查询分析界面,切换到“索引视角”,将对应的自定义查询分析设置为默认查询分析,即在索引视角中找到目标规则并单击设为默认按钮。
5.设置默认自定义查询分析后的界面效果:
设置完成后,被设为默认的自定义查询分析名称前会显示[默认]标识,例如[默认]test_tong(同义词)。
同义词干预词典
业务场景不一样,某些词的同义词也会有所差异,会存在系统内置词典缺少同义词或者提供了错误的同义词。因此,提供了干预功能,供用户自定义同义词。通过创建同义词干预词典,并在查询分析中同义词配置相应的干预词典,就可以干预同义词功能。具体同义词干预词典配置及原理,请点击此处。