最近负责一个关于“搜索+排序逻辑”的项目,由于有经验丰富的工程师的支持,让我很受启发。经过讨论,我们决定这样做这个项目:
首先列出所有能影响这个项目的因素,衡量每一个因素的比重,确保不会有一个因素分值过高,而其他因素无法产生影响。最后以公式:“A因素 x 1 + B因素 x 0.5 + C因素 x 2 +。。。+N因素 x X = 得分”。根据得分,从高到低进行排序。
因素包括:
Score分值(此分值是根据后台日志Query值,用户查找的记录而定的。因为搜索的逻辑即是用户的逻辑,用户是如何查找产品的,程序只要根据用户查找产品的思维去寻找即可。机器是死的,而人是活的。当大量的用户查找记录汇集到一起时,就能够产生很智能搜索,从数据上保证大多数用户查找的最受欢迎的产品,能够在第一时间显示到用户面前。)
产品分值(包括产品描述、有无图片、POI完整性、费用说明是否详细、同类型产品价格越低排名约靠前、已付款订单数、用户评分高低。。。)
供应商分值(包括用户评分、产品数量、二次确认时长、退款率、下单率、总付款订单数。。。)
人工干预(由于运营活动、与供应商谈合作等因素影响,需要人工改变产品的顺序,于是就给产品一个加权值,保证其优先展示。这个加权值是有时间限制的,产品是我们的,我们说的算!我们当然要以能为我们带来最多售卖的产品为最优先。由于种种原因我们可以帮供应商推荐,但供应商的产品若卖的不好,则必然让其向下排,好的位置一定要留给卖的好的产品!)
夜间时段(由于有的供应商上班时间是早上9:00~晚上6:00,而有的供应商则可以提供24小时服务。那么就在晚上6:00以后,对24小时服务的供应商提供加权值,保证其优先展示在朝九晚六的供应商之前。这样不但能保证晚上6:00需要服务的用户,能找到没有下班的供应商;同时,也会增加我们产品的售卖)
时差影响(由于部分供应商在北美,与中国的时差有13个小时。那么,可以根据他们的工作时间给予调整,保证在他们上班的时间段优先展示他们的产品。由于我们的产品覆盖全球多个时区,则根据不同的时区给予相应的加权值)
单PV订单量(这个因素是实时变化的。根据一个产品的“订单数”除以 "PV数" 得出该产品的“单PV订单量”。若一个产品的“单PV订单量”升高,则会逐渐排名向上;若一个产品的“单PV订单量”降低,则会逐渐排名向下。保证我们把最好的位置留给能为我们带来最大收益的产品)
行业知识(每一个行业都有该行业的经验,对我们来说,比如11月份至2月份是去普吉岛的最佳时机,那么我们会在10月份开始推荐普吉岛;4月初是去日本旅游的最佳时机,那么我们要在3月初就开始推荐日本。。。不同地区的产品,以及该地区的不同类型的服务,都会根据其火爆的时间段进行推荐,考虑到游客出行会提前购买旅游产品,那么我们会根据从数据中获取到的用户提前购买时间段,进行推荐)
整个的逻辑,是不断动态变化着的。
尽管它不完美,但它能保证在目前的情况下,推荐最优的产品给用户,尽量的保证用户找到他想要的产品,以此来提高我们产品的售卖。
搜索逻辑是一个很大的项目,不是一次性能够做好的,我们这次版本也仅仅是V2.0的版本。往后会对搜索逻辑进行不断的优化,我相信每一次优化对我们的数据都是一次提升。
最后在此,感谢大力支持的工程师们!!!