gorse试用

注:本试用是在win10下安装试用

一、导入items成功:

gorse import-items C:\Users\zhouxiujue/.gorse/gorse.db D:\golang\dataset\ml-100k\u.item

2020/04/09 11:45:04 database status: 0 feedback, 0 items
2020/04/09 11:45:04 import items from D:\golang\dataset\ml-100k\u.item
2020/04/09 11:45:04 database status: 0 feedback, 1682 items
2020/04/09 11:45:04 items are imported successfully! (31.2878ms)

二、导入feedback不成功:

gorse import-feedback C:\Users\zhouxiujue\.gorse\gorse.db C:\Users\zhouxiujue\.gorse\dataset\ml-100k\u.data --sep $'\t'

2020/04/09 13:55:37 database status: 0 feedback, 1682 items
2020/04/09 13:55:37 import feedback from C:\Users\zhouxiujue\.gorse\dataset\ml-100k\u.data
2020/04/09 13:55:37 database status: 0 feedback, 1682 items
2020/04/09 13:55:37 feedback are imported successfully! (22.1404ms) 

 后从别的文章中得到启发,不能用单引号,改为双引号:

gorse import-feedback C:\Users\zhouxiujue\.gorse\gorse.db C:\Users\zhouxiujue\.gorse\dataset\ml-100k\u.data --sep $"\t"

仍然不成功,推测问题出在分隔符的转义符的写法不准确,把分隔符改为逗号就可以了。

Tab键用 --sep $"\t" 在windows的dos下可能不准确。如果有人知道麻烦留言!!谢谢!

三、调接口导入:

curl -X PUT -H 'Content-Type: application/json' 127.0.0.1:8080/items -d '[{"ItemId":"2048","Timestamp":"2010-1-1"},{"ItemId":"2049","Timestamp":"2011-1-1"},{"ItemId":"2050","Timestamp":"2012-1-1"}]'

不成功!,原因还是单引号。

改为双引号: 

curl -X PUT -H "Content-Type: application/json" 127.0.0.1:8080/feedback -d "[{\"UserId\":\"2048\",\"ItemId\":\"1000\",\"Rating\":3},{\"UserId\":\"2049\",\"ItemId\":\"1000\",\"Rating\":3}]"

导入成功:

{
 "ItemsBefore": 1682,
 "ItemsAfter": 1683,
 "UsersBefore": 1,
 "UsersAfter": 2,
 "FeedbackBefore": 0,
 "FeedbackAfter": 2

四、启动gorse的server,配置文件在example中有一份现成的可以用

gorse serve -c D:\dev\gopath\src\github.com\zhenghaoz\gorse\example\file_config\config.toml

注意,你需要先导入feedback和items才能启动服务。

在IE中访问:

http://127.0.0.1:8080/recommends/13?number=10

有返回:

[
 {
  "ItemId": "988",
  "Popularity": 86,
  "Timestamp": "0001-01-01T00:00:00Z",
  "Score": 1
 },
 {
  "ItemId": "259",
  "Popularity": 162,
  "Timestamp": "0001-01-01T00:00:00Z",
  "Score": 0.9783490222851946
 },
 {
  "ItemId": "245",
  "Popularity": 240,
  "Timestamp": "0001-01-01T00:00:00Z",
  "Score": 0.8745238818109914
 },
 {
  "ItemId": "304",
  "Popularity": 149,
  "Timestamp": "0001-01-01T00:00:00Z",
  "Score": 0.8301400379197285
 },
 {
  "ItemId": "325",
  "Popularity": 128,
  "Timestamp": "0001-01-01T00:00:00Z",
  "Score": 0.8140271102494833
 },
 {
  "ItemId": "496",
  "Popularity": 231,
  "Timestamp": "0001-01-01T00:00:00Z",
  "Score": 0.8074109883626155
 },
 {
  "ItemId": "257",
  "Popularity": 303,
  "Timestamp": "0001-01-01T00:00:00Z",
  "Score": 0.7536048916776367
 },
 {
  "ItemId": "266",
  "Popularity": 35,
  "Timestamp": "0001-01-01T00:00:00Z",
  "Score": 0.7516811220131554
 },
 {
  "ItemId": "134",
  "Popularity": 198,
  "Timestamp": "0001-01-01T00:00:00Z",
  "Score": 0.7496362849649536
 },
 {
  "ItemId": "948",
  "Popularity": 48,
  "Timestamp": "0001-01-01T00:00:00Z",
  "Score": 0.6596478258360672
 }
]

 

 

 

<think>嗯,用户问的是如何在Gorse中导入MySQL表单数据。我需要先回忆一下Gorse的相关知识。Gorse是一个开源的推荐系统,支持从多种数据源导入数据,包括MySQL。用户可能已经安装Gorse,并且有MySQL的数据表,现在需要将数据导入到Gorse中。 首先,用户可能需要了解Gorse的数据结构,比如用户、物品和交互数据。导入数据通常需要配置数据源,然后使用CLI工具或者API进行导入。记得Gorse的配置文件里可以设置MySQL的连接信息,包括主机、端口、用户名、密码、数据库名以及表名。 然后,用户需要确认自己的MySQL表结构是否符合Gorse的要求。例如,用户表可能需要有用户ID、标签、时间戳等字段。物品表可能需要物品ID、标签、时间戳,还有是否有效之类的状态。交互数据表需要用户ID、物品ID、交互类型、时间戳这些字段。如果用户的表结构不同,可能需要调整配置文件中的字段映射。 接下来,步骤应该是先配置config.toml文件,设置MySQL的连接参数和各个表的字段映射。然后运行gorse master命令启动主节点,可能还需要启动worker和server节点。最后使用gorse import命令导入数据。 需要提醒用户注意的地方包括:确保MySQL服务可访问,检查字段映射是否正确,处理时间戳格式,以及导入后检查日志确认数据是否成功。可能用户会遇到连接问题或者字段不匹配的错误,这时候需要根据日志排查。 另外,用户可能需要知道导入命令的具体用法,比如gorse import的各个参数。如果用户的数据量大,可能需要调整批次大小或者考虑性能优化。还有,测试时可以用小部分数据先验证流程是否正确。 总之,步骤大概是配置、启动服务、导入数据,中间需要注意配置文件的正确性和数据结构的匹配。最后确保导入成功,没有报错。</think>以下是逐步导入MySQL数据到Gorse的指南: 1. **准备数据库连接信息** - 确保记录以下参数: ```ini Host = "127.0.0.1" Port = 3306 User = "root" Password = "your_password" Database = "your_database" ``` 2. **配置数据表映射** 在`config.toml`中添加对应配置段: ```toml # 用户表配置 [database.users] Table = "user_table" UserId = "user_id_col" Labels = ["label_col1", "label_col2"] Timestamp = "update_time_col" # 物品表配置 [database.items] Table = "item_table" ItemId = "item_id_col" Labels = ["category_col"] Timestamp = "modified_col" IsHidden = "status_col" # 状态列需返回0/1 # 交互数据表配置 [database.feedback] Table = "interaction_table" FeedbackType = "click" # 定义交互类型 UserId = "user_id_col" ItemId = "item_id_col" Timestamp = "action_time_col" ``` 3. **启动Gorse服务** ```bash # 启动主节点 gorse master --config config.toml # 新终端启动worker gorse worker --config config.toml # 新终端启动server gorse server --config config.toml ``` 4. **执行数据导入** ```bash gorse import --config config.toml \ --import-users \ # 导入用户数据 --import-items \ # 导入物品数据 --import-feedback # 导入交互数据 ``` **关键注意事项**: 1. 字段类型必须满足: - 时间戳字段:需为DATETIME或TIMESTAMP类型 - 隐藏状态字段:需为TINYINT(1)类型 - 标签字段:建议为VARCHAR/TEXT类型 2. 性能优化建议: ```toml [database] BatchSize = 10000 # 根据内存调整批次大小 MaxConnections = 20 # 控制并发连接数 ``` 3. 验证导入结果: ```bash curl http://127.0.0.1:8087/api/statistics ``` 检查返回的`UserCount`、`ItemCount`、`FeedbackCount`是否与预期一致 **常见问题处理**: - 连接失败:检查MySQL的远程访问权限 ```sql GRANT ALL PRIVILEGES ON your_database.* TO 'user'@'%'; FLUSH PRIVILEGES; ``` - 时间戳格式错误:在SQL中使用`DATE_FORMAT(column, '%Y-%m-%d %H:%i:%s')`转换格式 - 内存不足:减小BatchSize值,建议从1000开始逐步调整 完整配置示例参见[Gorse官方文档](https://gorse.io/docs/master/getting-started/import-from-mysql.html),导入完成后建议通过`gorse status`命令监控系统运行状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值