# 更新总结 - 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文件生成,便于问题排查