筛选器模糊匹配实现方法
场景:电商中,通常为了进行搜索优化,商品标题会加入各种高频搜索词,导致商品标题变化无迹可循,基于商品标题维护一个商品简称的匹配表,繁琐不现实,故希望通过简称进行筛选的方式行不通。所以,客户希望通过商品名称中某些特定的口味关键词来筛选商品(即模糊匹配的需求),且希望同时筛选多种口味(即满足口味与口味之间"或"的关系)。
实现效果:
实现方法:
1. 设置全局参数:管理员设置-资源管理-全局参数-新建参数,如下,文本型参数“口味”,多值。可以提前设置好选项,也可以后期从参数筛选器编辑界面修改选项。Note:单值参数仅适用于单选筛选器,多选参数可兼容单选和多选场景,所以建议新建多值文本参数。
2. 进入卡片编辑区域,设置筛选区域中需要的计算字段。新建计算字段,引用上一部新建的文本参数。
Note:在卡片编辑区,添加计算字段时,split对文本型全局参数不起作用。需要单独将该全局参数建一个计算字段,对添加的这个计算字段应用split进行分裂。如下图中字段【口味】。
3. 接上,新建一个计算字段,命名为【参数控制】,将其拖入筛选区域。
如果筛选器只需要单选,那使用 instr 函数即可,类型为布尔型;
instr([商品标题],[口味])>0
筛选器多选场景,SQL函数有两种写法,如下,任选其一,类型为布尔型。
1)exists(split([口味],','), x -> instr([商品标题],x)>0)
2)array_sum(transform(split([口味],','), x -> instr([商品标题],x)))>0
4. 保存卡片,回到页面,新建参数筛选器,选择步骤一新建的参数。默认值可以重新选择,可选项也可以手动修改或者选择从数据集导入。参数筛选器会自动匹配当前页面使用了该参数的卡片并自动联动,制作完成。