首页 新闻 会员 周边 捐助

Es搜索根据匹配标签权重之和进行排序,如何实现?

0
悬赏园豆:120 [待解决问题]

我想使用ES用来做内容推荐:给每个内容打上n个标签,然后根据用户喜欢的标签进行匹配查询。标签匹配没什么问题,问题出现在了排序上。请问博友们知不知道ES能否支持这样查询?

需求:
内容1,含有标签 A/B/C/D/E/F/G
然后我使用 A/B/Z/N 标签去查询,肯定是能匹配上内容1的。
但是我想在查询时,给标签A 0.5分,标签B 0.6分,标签Z 1.1分,标签N 0.1分
然后查询结果的排序根据匹配到的标签分之和进行排序

内容1,含有标签 A、B、C
内容2,含有标签A、C、D、N
如果查询 A=0.5分、B = 0.1分、C = 0.2分、N = 3分区查询
那么内容1 的排序分就是 0.5+0.1+0.2 = 0.8分
内容2 的排序分就是0.5 + 0.2 + 3 = 3.7分
虽然内容1 标签匹配的数量较多,但是显然内容2的排序分更高,显示靠前

请问这样ES查询能直接实现吗?

问题补充:

怎么实现?

廊虞的主页 廊虞 | 初学一级 | 园豆:82
提问于:2021-11-28 00:20
< >
分享
所有回答(1)
0

elasticsearch? 有用 explain 查看打分详情吗

〆灬丶 | 园豆:2314 (老鸟四级) | 2021-11-29 09:57

对,elasticsearch,我不知道这样能不能支持这样查询

支持(0) 反对(0) 廊虞 | 园豆:82 (初学一级) | 2021-12-01 18:14

@廊虞: 可以,但是一定要保证它在计算分值时,你的权重影响到了;建议你还是先用 explain 分析一下,然后重构 DSL 语句

支持(0) 反对(0) 〆灬丶 | 园豆:2314 (老鸟四级) | 2021-12-02 14:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册