电商/O2O行业搜索排序表达式最佳实践

简介: 搭建搜索功能不难,难的是如何提高搜索质量,帮助用户快速找到心中所想的内容或商品,那么搜索结果的相关性排序则是影响用户体验最关键的一环,今天小编和大家聊一聊[开放搜索]几个典型的排序表达式的应用,如何更好的优化电商/O2O行业的排序效果.

Query在开放搜索的执行流程

在这里插入图片描述

开放搜索排序表达式配置

image.png

场景1:关键词重复堆砌导致排序分数较高问题
案例:电商商家作弊问题:关键词重复堆砌导致排序分数较高,排序结果靠前
**开放搜索解决方案:**业务排序函数field_term_match_count,获取文档中某个字段与查询词匹配的词组个数,根据不同个数做不同的处理;
image.png

场景2:衡量商品时效性
开放搜索解决方案: 可以用在粗排和精排的timeliness函数,计算时效分,用于衡量文档/商品的新旧程度, 单位为秒,返回值:float,值域为[0,1],值越大表示时效性越好;

场景3:不同维度归为同一区间(综合分值)去排序
案例:一篇doc的好坏需要从不同的维度衡量。而各个维度的分数值域可能不同,网页点击数可能是成百上千万,网页的文本相关性分数在[0, 1]之间,它们之间没有可比性,为了在公式中使用这些元素,需要将不同的分数归一化至同一个值域区间,而normalize为这种归一化提供了一种简便的方法
开放搜索解决方案:归一化函数normalize根据不同的算分将数值归一化至[0, 1];

场景4: 对符合用户标签喜好的商品加权
案例: 年轻女用户搜索"鞋子",对应商品排序需求满足用户特性标签"年轻"“女性”;对符合用户标签喜好的商品加权,从而实现个性化搜索排序;
开放搜索解决方案: 商品可以具有多个属性标签,例如1表示年轻人(年龄)、2表示中年人(年龄)、3表示小清新(风格)、4表示时尚(风格)、5表示女性(性别)、6表示男性(性别)等等, 应用标签匹配tag_match 函数,实现对匹配到的商品做排序加权

场景5:某时间段的指定搜索需求
例如:

1.查询下午14点到15:30点营业的店铺
2.查询下午14点到15:30之间,库存>10的店铺有哪些
3.查询明天晚上能服务3-5个人的店铺
开放搜索解决方案: 运用功能函数bit_struct将INT_ARRAY字段值进行自定义分组并允许对分组值进行指定operation计算。

场景6:基于位置、距离搜索
案例:查找距离用户10公里内的【外婆家】餐厅,并按照距离由近及远排序
**开放搜索解决方案:**运用distance函数, 获取两个点之间的球面距离,一般用于LBS的距离计算。

如果你想和更多搜索技术相关同学交流,可以一起加入【推荐与搜索技术交流群】,钉钉群号: 23310502。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值