ElasticSearch
Good LA
这个作者很懒,什么都没留下…
展开
-
关于推荐场景的一些思考
背景由于用户数的飙升,推荐使用的技术栈也在不断升级,以满足更高并发和更大数据量的推荐场景。推荐相关的原始数据从小几十万到几百万,到几千万,再到上亿。推荐1.0从全库的用户数据中load出满足条件的用户,在jvm做计算,得到推荐结果。随着用户数量的上升,满足条件的用户越来越多,导致计算量越来越大,性能逐渐变低推荐2.0一边从数据库中load出满足条件的用户,一边用sql在数据库做计算,直接得到推荐结果。利用索引,性能提升五倍左右。随着用户量继续上升,性能也在逐渐变低。推荐3.0将数据库推荐相原创 2022-04-26 14:04:52 · 2399 阅读 · 0 评论 -
function_score组合script_score定制评分结果
背景ES版本:6.4脚本分两步:过滤掉不关心的数据,加速后续计算分值性能编写分值脚本,得到最终分值GET /user/_doc/_search{ "query": { "function_score": { // 过滤掉不关心的数据,加速计算分值性能 "query": { "bool": { "filter": [ { "term": {原创 2022-01-06 16:03:30 · 1009 阅读 · 0 评论 -
使用ES做推荐需求
背景推荐算法涉及的数据范围多,而且来源于不同的表。如果基于mysql去做推荐需求,很快会遇到性能瓶颈。说到底,基于mysql构建的数据模型,适合普通的业务需求,而推荐需求,需要寻找新的数据模型。因此,引入ES,构建新的数据模型,性能提升5-10倍。新数据模型架构图通过canal监听mysql数据库相关表的变化,将变更发送给MQ,消费者消费MQ,将变更更新到ES。使用HightLevel Client,结合计分脚本painless做推荐业务。基于开闭原则,封装相关模块,使得易拓展。...原创 2022-01-05 14:32:09 · 2058 阅读 · 0 评论