# weight 通用权重模型 ## 获取图片列表(标准查询) GET /api/images ```javascript { page: 1, // 当前页码 pageSize: 20, // 分页数 next: true, // 是否存在下一页 list: [ { id: 1234, // 原图ID width: 512, // 原图宽度 height: 512, // 原图高度 user: { // 来源用户 id: 1234, name: 'LAST', }, article: { // 来源文章 id: 1234, title: 'GAMEX', } } ] } ``` 标准查询(select) 0. 按照名称搜索(search=xxx) 1. 按照标签查询权重最相近的(tag=tag1) 2. 按照时间区间查询(date=20210203~20220102||20210203+||20210203-) 3. 按照发表用户查询(user=1234) 4. 按照精选集查询(choice=1234) 取交集(筛选必须包含所有指定标签的) 1. 过滤出多个标签的交集(tags=tag1,tag2,tag3) 取并集(筛选任意包含其中一个标签的) 1. 多个标签同时存在(tags=tag1+,tag2+) 取差集(排除含有指定标签的) 1. 排除含有指定标签的(tags=tag1-,tag2-) 取子集(不提供) 取补集(不提供) 混写示例: (当混写时交集最优先, 并集优先于差集) `GET /api/images?tags=tag1,tag2,tag4+,tag3-` 数据排序(sort) 1. 按照时间正反排序(sort=date+||date-) 2. 按照热门正反排序(sort=hot+||hot-) 列表分页(page) 1. 分页大小 pageSize=20 2. 指定页码 page=1 (当结束时, 返回next字段为false) 偏好推荐 0. 使用权重推荐模型(请求中需要附带有效token) * 根据用户偏好推荐 (propose=like) * 根据浏览历史推荐 (propose=history) * 根据收藏记录推荐 (propose=choice) ## 获取标签列表(热门标签) GET /api/tags ```javascript { page: 1, pageSize: 20, next: true, list: [ { id: 1234, // 标签ID name: 'tagName', // 标签名(按照请求语种对应变化, 支持简体中文,繁体中文,英文,日文) count: 2, // 标签索引的图像数量(非实时, 应避免使用) } ] } ``` 标准查询(select) 0. 按照名称模糊搜索(search=xxx) 1. 按照创建时间区间查询(date=20210203~20220102||20210203+||20210203-) 数据排序 1. 按照时间正反排序(sort=date+||date-) 2. 按照热门正反排序(sort=hot+||hot-) * 标签以ID为准而非以标签名为准, 因为需要支持多语种翻译 * 指定语种 headers: Accept-Language: zh-cn;q=0.8,en-US;q=0.9 (义:优先支持英文,如果没有英文则支持中文) ## 搜索推荐 WS /api/search ```javascript // 发送数据 { search: 'xxx' } // 接收数据 { tags: [ { id: 1234, name: 'tagName', count: 2, } ] } ``` * 选中搜索框时建立WS连接 * 离开搜索框时应及时断开WS连接 ## 浏览记录 GET /api/history ```javascript { page: 1, pageSize: 20, next: true, list: [ { type: 'image' date: '2021-12-12 09:24:33', data: { id: 1234, width: 512, height: 512 } }, { type: 'article' date: '2021-12-12 09:24:33', data: { id: 1234, title: '文章标题' } } ] } ``` POST /api/history ```javascript [ { type: 'image', // 浏览类型 time: '2021-12-12 09:24:33', // 浏览时间 data: { id: 1234 } } ] ``` 筛选 1. 按类型筛选(type=image) 2. 按时间区间筛选(date=20210203~20220102||20210203+||20210203-) * 浏览记录属于日志没有ID, 以用户身份与时间区间批量操作(移除记录) * 浏览记录默认30天内保留最大1000条(不超过1000条的保留全部记录)