abb122be
tangwang
fix
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
# 更新总结 - 2025-10-22
## 1. 修改 tag_category_similar.py 脚本
### 主要变更
- **SQL查询修改**:从只查询分类名称改为同时查询分类ID和名称
- 修改前:`GROUP_CONCAT(pc_1.name) AS '商品信息'`
- 修改后:`GROUP_CONCAT(DISTINCT CONCAT(pc_1.id, ':', pc_1.name)) AS '商品信息'`
- **数据处理修改**:解析ID和名称对,建立ID到名称的映射
```python
cat_id_to_name = {}
for cat_pair in categories:
if ':' in cat_pair:
cat_id, cat_name = cat_pair.split(':', 1)
cat_id_to_name[cat_id] = cat_name
unique_cats.add(cat_id)
```
- **输出格式修改**:
- **主输出文件**(`output/tag_category_similar_YYYYMMDD.txt`):只包含ID
- 格式:`category_id \t similar_id1:score1,similar_id2:score2,...`
- **Debug文件**(`output/debug/tag_category_similar_YYYYMMDD_readable.txt`):包含ID+名称
- 格式:`category_id:category_name \t similar_id1:similar_name1:score1,...`
### 输出示例
**主文件(用于Redis加载):**
```
123 456:0.8123,789:0.7654,234:0.6543
```
**Debug文件(便于人工查看):**
```
================================================================================
明文索引文件
生成时间: 2025-10-22 HH:MM:SS
描述: tag_category_similar (分类相似度)
总索引数: 708
================================================================================
123:BB夹/一字夹 456:横夹:0.8123,789:橡皮筋/发圈:0.7654,234:抓夹:0.6543
```
## 2. 更新详细设计文档
### 修改位置
文件:`offline_tasks/doc/详细设计文档.md`
章节:📊 数据量统计
### 变更内容
- 基于真实输出文件统计了实际数据量
- 更新了所有索引类型的准确数量和大小
- 添加了 `tag_category_similar` 索引统计
- 更新了Redis内存占用预估(从180MB更新为400MB)
### 实际数据统计(2025-10-22)
| 索引类型 | 索引数量 | 单条平均大小 | 总大小 | 更新频率 |
|---------|---------|---------|--------|---------|
| i2i_deepwalk | 48,376 | ~780B | 36MB | 每天 |
| i2i_session_w2v | 50,990 | ~840B | 41MB | 每天 |
| i2i_content_name | 127,720 | ~830B | 101MB | 每周 |
| i2i_content_pic | 0 | - | 0 | 每周 |
| i2i_item_behavior | 178,775 | ~750B | 128MB | 每天 |
| interest_hot | 14,001 | ~520B | 6.9MB | 每天 |
| interest_cart | 15,563 | ~670B | 10MB | 每天 |
| interest_new | 6,463 | ~500B | 3.1MB | 每天 |
| interest_global | 17,533 | ~660B | 11MB | 每天 |
| tag_category_similar | 708 | ~930B | 630KB | 每周 |
| **总计** | **~460,000** | - | **~338MB** | - |
## 3. 需要执行的操作
要应用这些更改,需要重新运行脚本:
```bash
cd /home/tw/recommendation/offline_tasks
python scripts/tag_category_similar.py --debug
```
这将生成:
- `output/tag_category_similar_20251022.txt` - ID格式的主文件
- `output/debug/tag_category_similar_20251022_readable.txt` - 可读格式的调试文件
## 4. 影响分析
### 向后兼容性
- ⚠️ **破坏性变更**:主输出文件格式从名称改为ID
- 需要更新所有使用该文件的下游系统(特别是Redis加载脚本)
### 优势
1. ✅ ID格式更稳定,不受名称变更影响
2. ✅ 数据更准确,避免名称重复问题
3. ✅ 保留可读版本便于调试和验证
4. ✅ 与其他索引文件格式保持一致
### 建议
- 更新Redis加载脚本,使其能够处理category ID
- 在API层做ID到名称的转换(如需要)
- 保持debug文件生成,便于问题排查
|