内容搜索排序表达式的最佳实践-阿里云开发者社区

开发者社区> 工程师U> 正文

内容搜索排序表达式的最佳实践

简介: 本文重点介绍"开放搜索"中的排序表达式的配置及特征性函数的应用
+关注继续查看

某新闻资讯平台,在内容搜索场景中需要满足业务多样化,个性化的需求,在query改写配置好后,希望在排序阶段进行优化,实现强大的相关性排序效果,提高用户点击率。今天会结合几个典型场景该如何来思考和设计排序因子,和大家详解特征性函数的应用

Query在开放搜索的执行流程

image.png

开放搜索排序表达式配置

image.png
接下来给大家分析几个常见的排序优化需求:

场景1:查询词和召回字段匹配程度排序优化
案例:当用户搜索“药品公司”,分词数量为2个:药品,公司,在召回结果包含的查询词分词个数相同情况下,如何把title“药品公司”排在“药品杭州分公司”的前面那?

开放搜索解决方案:应用排序相关性特征函数项field_match_ratio查询词的分词个数与召回字段的总词组字个数比值,比值越低,排序分越高.
image.png
详细用法:https://help.aliyun.com/document_detail/51287.htmlspm=a2c4g.11186623.6.626.64786ab8OOs7hM

场景2: 标签特征权重在“个性化”排序召回中的应用
案例: 当用户搜索"吃鸡",可能是游戏吃鸡内容搜索,也可以能是新闻内容搜索,如何把用户更感兴趣的游戏内容排到前面那?

开放搜索解决方案:匹配文档和请求中的标签tag_match 函数,用于对查询语句和文档做标签匹配,使用匹配结果对文档进行算分加权;
• 通过长时间的积累能获知每个用户的兴趣标签,可以和内容/商品标签对应,做到“个性化”排序
• 实现对用户感兴趣的帖子加权,把用户更感兴趣的内容/商品排到前面;
假设文档内容共有如下10类型的标签:
1-财经, 2-科技 ,3-体育 ,4-娱乐 ,5-时尚, 6-教育 ,7-旅游 ,8-游戏 ,9-科普 ,10-医疗
如果想将“8-游戏”标签的文档在前面展示,可设置tag_match函数
image.png
image.png
image.png
适用场景:此函数不仅试用于内容搜索场景,同样适用商品搜索场景,满足个性化商品排序
其他案例和用法:https://developer.aliyun.com/article/775488

场景3:根据查询词在title和body的紧密程度排序优化
案例:搜索"黑色幽默",意图是搜索title“周杰伦《黑色幽默》的歌曲”,但在数据库里有条文本body记录为“下雨了,天空是灰黑色的,即便幽默的人此时也比较烦闷”,导致这条记录也被召回,并且排序也比较靠前, 如何将title字段的紧密度在排序中起主导作用?

开放搜索解决方案:为了使这条不太相关的body记录排序靠后,title字段排序靠前, 可以使用fieldterm_proximity函数获取文档紧密程度的得分来实现. 此函数用来表示关键词分词词组在字段上的紧密程度,紧密度越高,排序分越高。精排公式写为:fieldterm_proximity(title)*10 + fieldterm_proximity(body)
详细用法:https://help.aliyun.com/document_detail/51281.html?spm=a2c4g.11186623.6.621.3c0938de1kdUfp

场景4:内容时效性
案例:用户对时间的敏感度越高,那么越希望得到新的内容,内容的时效性和整体的满意度直接相关,如何优化排序配置,满足内容排序的时效性敏感度?

开放搜索解决方案:运用函数timeliness--时效分,用于衡量文档的新旧程度, 值越大表示时效性越好
详细用法:https://help.aliyun.com/document_detail/51270.html?spm=a2c4g.11174283.6.636.121f5a19EWuQQM

场景5:关键词(分类、标题、作者)相关性排序优化
案例1:搜索“子女”,优化前排序结果“女装靴子/裤子/叶子”排在“预测子女性别”的前面,如何运用排序表达式优化把"子女"最相关的内容排序靠前那?
案例2: 在精排中对title和body进行文本算分,权重比为3:1

开放搜索解决方案:在精排中进行文本算分,关键词在字段上的文本匹配度-text_relevance函数,匹配度越高,分值越高,排序越靠前.
详细用法:https://help.aliyun.com/document_detail/51280.html?spm=a2c4g.11186623.6.635.287e42c3whTeg9


以上就是阿里云开放搜索内容行业"排序表达式及特征函数”的应用案例,如果您对搜索与推荐相关技术感兴趣,欢迎加入钉钉群内交流~

image.png


【开放搜索】新用户活动:阿里云实名认证用户享1个月免费试用https://free.aliyun.com/product/opensearch-free-trial

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
分享录制的正则表达式入门、高阶以及使用 .NET 实现网络爬虫视频教程
我发布的「正则表达式入门以及高阶教程」,欢迎学习。 课程简介 正则表达式是软件开发必须掌握的一门语言,掌握后才能很好地理解到它的威力; 课程采用概念和实验操作 4/6 分隔,帮助大家理解概念后再使用大量的实例加深对概念的理解; 实例操作是对概念最好的理解,也是学习新语言最有效的办法; 在课程中也穿插着大量软件开发的技巧和大家分享; 应该是把晦涩的正则表达式讲解的最生动的课程; 掌握了正则表达式后,您一定会觉得这是一门最值得掌握的语言。
921 0
JSP用户注册的正则表达式
/* private String username; 用户名不能为空,并且要是3-8的字符 abcdABcd private String password; 密码不能为空,并且要是3-8的数字 private String password2; 两次密码要一致 private String email; 可以为空,不为空要是一个合法的邮箱 priv
1123 0
【CDN 最佳实践】CDN访问异常排查思路
当客户使用 CDN 加速站点访问时可能出现问题涉及到多级网络链路的问题难以排查。如何尽快定位并解决问题就成为疑难问题,本文将根据系统介绍如何定位 CDN 资源无法访问的问题点以及处理的思路。
2363 0
RDS&POLARDB归档到X-Pack Spark计算最佳实践
业务背景 对于RDS&POLARDB FOR MYSQL 有些用户场景会遇到,当一张的数据达到几千万时,你查询一次所花的时间会变多。这时候会采取水平分表的策略,水平拆分是将同一个表的数据进行分块保存到不同的数据库中,这些数据库中的表结构完全相同。
1622 0
SpringMVC的JSP页面中中EL表达式不起作用的问题解决
今天,我在写SpringMVC代码的时候遇到了一个问题,就是在jsp页面中使用el表达式取值,取不到值,但是使用jsp中嵌套java代码可以取到值。
883 0
【沉淀】从网络中间件到搜索,从移动开发到分布式计算平台,阿里高级专家李睿博谈自己的折腾路
整个过程我觉得还是爱最重要。有爱才有勇气才有希望。我是真的爱写代码。从小学就开始爱,到现在快三十年了也还爱。
25792 0
企业级搜索公司PureDiscovery获C轮融资1000万美元
  企业级搜索公司PureDiscovery不是依赖索引和关键词搜索,它专注于语义分析技术、学习公司文件内容中所指的内涵——通过创造一个语义大脑( semantic brain)指示用户需要的数据。
970 0
+关注
50
文章
3
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《Nacos架构&原理》
立即下载
《看见新力量:二》电子书
立即下载
云上自动化运维(CloudOps)白皮书
立即下载