Gorse v0.4.1更新

627 阅读2分钟

Github: Gorse v0.4.1更新

新特性

  • 支持基于会话的推荐

会话推荐主要为未登录的用户提供临时的推荐结果。客户端将用户历史行为记录发送给服务节点,服务节点即可完成针对该用户的推荐。

$ curl -X POST http://localhost::8087/api/session/recommend  \
       -H "Content-Type: application/json"  \
       -d '[{ "FeedbackType": "star", "UserId": "user1", "ItemId": "item1", "Timestamp": "2022-02-24" }]'

[ "item4", "item5", "item6"]
  • 支持回收无用的推荐缓存

在用户或者物品被删除之后,用户和物品的推荐缓存会被缓存回收程序回收。

为了避免被垃圾回收的缓存项目对现存的缓存产生影响,新版本在[recommend]之下提供了cache_expire,强制刷新超过一定时间没有更新的缓存,保证无用的缓存项目被安全回收。

[recommend]

# Recommended cache expire time. The default value is 72h.
cache_expire = "72h"
  • 修改配置之后自动刷新推荐缓存

新版本保存了生成推荐缓存的相关配置的哈希值,能够在相关配置被修改之后自动刷新推荐缓存。

  • 提供了全新的Grafana大盘

为全新的Grafana大盘提供了监控接口,搭建使用方法请参考GitRec项目。

427e53b4e1497e4edc918ba2806e9425.png

问题修复

  • 修复了删除物品和隐藏物品的可见性

之前版本出现推荐已删除物品和已隐藏物品的问题,新版本对此进行了修复。

性能优化

  • 在服务节点缓存热门物品

在之前版本每次新增分类时,服务节点需要向缓存数据库查询物品热度,以将物品快速添加到新分类的热门物品中。新版本在服务节点缓存了热门物品,有效降低了缓存数据库负载。

  • 在服务节点缓存隐藏物品

在之前版本的每次推荐中,需要向缓存数据库查询物品是否可见,效率低效。在新版本中,服务节点维护了一份隐藏物品缓存,有效降低了缓存数据库负载。

服务节点的缓存刷新时间[server]之下的cache_expire确定。该配置项对于热门物品的影响可以忽略不计,对于隐藏和删除物品的有一定影响。cache_expire决定了将物品从隐藏状态切换为可见状态需要的最短时间。 [server]

# Server-side cache expire time. The default value is 10s.
cache_expire = "10s"