本文主要是介绍搜索结果飘红策略,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.简介
搜索结果飘红策略探究,主要的行文主旨探讨搜索的结果飘红的效果和策略。
我们这里以hr在招聘平台搜索心仪的求职者来讲述如何对搜索结果进行飘红更加合理。
搜索结果一般是一个人的卡片信息,一般会有:
- 姓名
- 当前公司职位
- 其他信息(简介,城市或者是需要飘红的一些字段信息)
2.首先,聊一下搜索结果飘红对搜索效果的影响。
2.1 充分飘红的优势
在搜索结果中对用户的query相符的部分进行飘红是可以大大增强信息的识别度,可以让用户快速定位到搜索的结果哪些是和使用的query相关的,比如名字,公司职位,工作经历等等。用户的query有可能是多个词比如"字节搜索算法",这个时候可能在搜索的时候分词会分为多个[“搜索”,“算法”,“字节”],这些命中信息可能属于召回中的多个字段比如:公司命中了"字节",职位命中了"算法",工作经历命中了"搜索",这个时候在卡片中尽可能的将命中的信息都以飘红的形式显示出来。
2.2 过度飘红的影响
过度飘红是指,多个召回字段命中了同样的词,如果都进行飘红的话,有些会进行重复飘红。比如使用[“搜索”,“算法”,“字节”]进行召回,公司命中了"字节",职位命中了"搜索算法",工作经历命中了"算法",这个时候如果职位和工作经历都飘红的话,可能会导致卡片信息比较乱,尤其是更多的其他字段也命中了的话(个人简介),卡片中飘红的位置比较多,看起来可能比较乱。所以飘红要有优先级,如果优先级高的位置已经飘红了,低优先级的就不再飘红了,比如公司职位可以认为比工作经历的优先级更高。
3.具体飘红策略实现
1.卡片信息
姓名,当前公司职位作为必须展示信息,有红必飘,其他信息,按照召回使用的字段的重要性进行显式,最多显示3个。
2.飘红策略
- 尽可能的将用户的query全部进行飘红
- 如果前面的字段已经将搜索query全部飘红了,后面的字段不再进行飘红显示
- 如果前面两行信息(姓名+公司职位)已经完成了完全飘红,这个时候如果其他信息为空,整个卡片显得不够饱满,这个时候可以将用户当前工作简介增加到用户的信息当中。实际的搜索效果看起来很不错。
- 对于比较长的字段,需要进行缩略显示,但是要漏出飘红信息
4. 问题
飘红的时候需要区分大小写,使用golang的string.toLower()不仅仅是是中英文,还会有罗马字符(也会区分大小写),所以判断是否有大小写字符的时候不能只判断英文,或者说应该不再判断是否有大小写字符,每次都用toLower()比较,再根据位置信息提取实际上匹配的字符串。
这篇关于搜索结果飘红策略的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!