热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

cron4j每天下午3点执行表达式_电商/O2O行业搜索排序表达式最佳实践

搭建搜索功能不难,难的是如何提高搜索质量,帮助用户快速找到心中所想的内容或商品,那么搜索结果的相关性排序则是影响用户体验最关键的一环,今天
50e1347236a8c50beeb20857bbbe0bfb.png

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

Query在开放搜索的执行流程

b99e921383e0d4710b5cb9f859023dba.png

开放搜索排序表达式配置

d9f76048a51de36ae2c8b1fc37389602.png

场景1:关键词重复堆砌导致排序分数较高问题

案例:电商商家作弊问题:关键词重复堆砌导致排序分数较高,排序结果靠前

开放搜索解决方案:业务排序函数field_term_match_count,获取文档中某个字段与查询词匹配的词组个数,根据不同个数做不同的处理;

38178a147f7ed4ce20ca1e9661c05925.png

场景2:衡量商品时效性

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

场景3:不同维度归为同一区间(综合分值)去排序

案例:一篇doc的好坏需要从不同的维度衡量。而各个维度的分数值域可能不同,网页点击数可能是成百上千万,网页的文本相关性分数在[0, 1]之间,它们之间没有可比性,为了在公式中使用这些元素,需要将不同的分数归一化至同一个值域区间,而normalize为这种归一化提供了一种简便的方法

开放搜索解决方案:归一化函数normalize根据不同的算分将数值归一化至[0, 1];

场景4: 对符合用户标签喜好的商品加权

案例: 年轻女用户搜索"鞋子",对应商品排序需求满足用户特性标签"年轻""女性";对符合用户标签喜好的商品加权,从而实现个性化搜索排序;

开放搜索解决方案: 商品可以具有多个属性标签,例如1表示年轻人(年龄)、2表示中年人(年龄)、3表示小清新(风格)、4表示时尚(风格)、5表示女性(性别)、6表示男性(性别)等等, 应用标签匹配tag_match 函数,实现对匹配到的商品做排序加权,

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

例如:

查询下午14点到15:30点营业的店铺

查询下午14点到15:30之间,库存>10的店铺有哪些

查询明天晚上能服务3-5个人的店铺

开放搜索解决方案: 运用功能函数bit_struct将INT_ARRAY字段值进行自定义分组并允许对分组值进行指定operation计算。

场景6:基于位置、距离搜索

案例:查找距离用户10公里内的【外婆家】餐厅,并按照距离由近及远排序

开放搜索解决方案:运用distance函数, 获取两个点之间的球面距离,一般用于LBS的距离计算。


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




推荐阅读
author-avatar
mobiledu2502869017
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有