时隔半年,Gorse推荐系统迎来了大版本更新。本次更新的支持将推荐结果存到磁盘数据库中、重构了配置文件布局以及优化了接口性能。
新特性
- 支持将推荐结果保存到MySQL中。
- 支持将推荐结果保存到Postgres中。
- 支持将推荐结果保存到MongoDB中。
在配置文件的cache_store字段中填入以上数据库地址即可将推荐结果保存到磁盘数据库中。
[database]
# The database for caching, support Redis, MySQL, Postgres and MongoDB:
# redis://<user>:<password>@<host>:<port>/<db_number>
# postgres://bob:secret@1.2.3.4:5432/mydb?sslmode=verify-full
# mongodb://[username:password@]host1[:port1][,...hostN[:portN]][/[defaultauthdb][?options]]
# mongodb+srv://[username:password@]host1[:port1][,...hostN[:portN]][/[defaultauthdb][?options]]
cache_store = "redis://localhost:6379/0"
在使用不同数据库时的性能对比可以在文档的Benchmark一节中查看。
修复问题
- 修复了Swagger文档中的错别字。
- 修复了ClickHouse中时间戳丢失时区信息的问题。
- 修复了Postgres插入重复数据行报错的问题。
- 修复了无法更新物品时间戳的问题。
性能优化
- 新版本优化了用户、物品和反馈的插入性能。
| 缓存数据库 | 存储数据库 | 优化前 | 优化后 | |
|---|---|---|---|---|
| 插入1000用户 | Redis | MySQL | 75ms | 38ms |
| 插入1000物品 | Redis | MySQL | 324ms | 32ms |
| 插入1000反馈 | Redis | MySQL | 248ms | 42ms |
不兼容更新
新版本采用了新的配置文件格式和新的默认值,详细格式和默认值请阅读config.toml.template文件。主要修改
- 将配置文件改成多级形式,为未来支持YAML做优化。
- 默认开启向量索引,加速大数据集上的搜索效率。