给公司外网客用户做一个智能推送功能。实现的大致思路是如下:
1. 推送数据来源。
a. 用户没有根据我们产品搜索条件查找产品的。
推送 随机的,类型丰富的产品
b. 有根据 我们设置的搜索条件进行产品搜索。
(1)将搜索的条件存在本地 COOKIE ,并且根据点击的次数设置权重。
*比如用户根据区域名‘男鞋’的查询次数是 1:设置cookie(shose) 的value 为‘男鞋_1’。当用户第二次使用 男鞋 做搜索条件的时候,我们在该区域的的权重上+1,变成 男鞋_2’
*当用户对我们的一个条件属性有多个选择的时候(比如:用户根据区域名‘男鞋’,‘跑鞋’进行了查询 ),记录根据属性值查询数据的次数来记录权重。比如:男鞋查了1次,跑鞋查了 2 次我们在 cookie 中以
cookie(‘shose’)=’ 男鞋_1, 跑鞋_2' 形式记录
(2)取客户的查询条件
*去取客户的cookie值,在value不为空的情况下,将cookie值里面的数据根据 ,(逗号)分隔成属性数组string[] = {‘男鞋_1’,’跑鞋_2’}。
*将数组中的值根据 _ (下划线)分隔,将点击次数进行对比,记录下最大点击次数【2】 和 对应的值【跑鞋】。
*将各个条件属性的最大点击次数进行对比,排序并取出点击数前三的属性(在用户所有条件无法满足的情况下,根据属性点击的次数来排列优先查询顺序)。比如:用户查了7 个条件,在我们的系统中没有符合这7个条件的产品,而用户查询了8 次shose为‘男鞋’,3次价格为 100-200,2次 红色 的数据,其他条件都为1.
(3)数据查询
在用户的7个条件没有办法都满足的情况下,我们根据权重前三的条件查询数据。在根据前三条件也没有数据的情况下,根据权重前二查询,再没有数据的情况下,只根据最大权重查询数据。在只根据最大权重查询还没有数据的情况下,我们就在随机,多类型的推送(不知道用户需要什么的情况下)。