你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
输入关键字进行搜索
搜索:
没有找到相关结果
God_lockin
赞同来自:
匿名用户
user_profile: { "a": 1, "b": 2, "c": 3 .... }
item_1: { "a": 1, "c": 2 } item_2: { "b": 1, "c": 2 }
user_es { "label": ["a", "b", "c"] }
item_1_es { "label": ["a", "c"] } item_2_es { "label": ["b", "c"] }
$item_index/_search { "query": { "terms": { "label": ["a", "b", "c"] } } }
(公式自己定,我乱写一个) user -> item1 _score * (u_a * i_1_a + u_b * i_1_b + u_c * i_1_c) => _score * (1 * 1 + 2 * 0 + 3 * 2) => _score * 7 user -> item2 _score * (u_a * i_2_a + u_b * i_2_b + u_c * i_2_c) => _score * (1 * 0 + 2 * 1 + 3 * 2) => _score * 8
要回复问题请先登录或注册
3 个回复
God_lockin
赞同来自:
同样的,商品的标签也存成一样的数据结构
召回的时候,在es里通过标签来找到相似标签最多的物品,再从db里拿到对应标签的算总分做排序
匿名用户
赞同来自:
例如:用户A:对应有标签1、标签2、标签3、标签4、标签5、标签6、标签7......标签100;
商品A的标签是:标签3、标签4、标签5、标签6、标签7
商品B的标签是:标签1、标签2、标签3、标签4、标签5、标签6
要的结果应该是:商品B、商品A这样的顺序
那查询的时候不会把用户A的所有标签都拿去查询吧-_-
God_lockin
赞同来自:
商品画像
用户ES
商品ES
推荐:
1. 标签召回
2. 算分
3. 排序 + 分页返回