这个还是两年多之前做的需求, 最后选择了位图作为推荐系统的核心数据结构, 过程很有意思, 简单总结一下.
1.业务背景
当初广告对外投放因为整体进线索量不足, 导致很多销售老师很多时间无客户可联系, 但是公海池的线索量多达几百万...根据销售人员和线索消耗量, 决定每天 10w 条线索供给, 质量按从好到坏排序, 销售老师可以选择要或者不要这条线索, 并且要求销售老师如果当天已经推荐过此条线索, 就不能再给他推荐了, 但要按优质顺序推荐给其他人...例如: 销售小王拿到了张三这条线索, 但是感觉这条线索不适合自己, 于是把他扔掉, 之后当天销售小王不会再拿到张三这条线索了, 开始向销售小李推荐线索, 按优质顺序那小李会再次拿到张三这条线索的....image.png
2.项目分析
项目受众: 销售群体 -> 有明显的操作高峰和低峰, 需要考虑并发问题....如果使用缓存肯定比数据库性能要高一数量级, 考虑数据结构采用集合或布隆过滤器, 但是集合占用空间较大, 数据比对复杂, 不适于中大型数据规模采用, 例如: 推荐10条未被推荐的数据, 则需要根据已推荐和总推荐数据取差集