# 最新更新 (2025-10-17) ## 🎉 本次更新内容 ### 1. ✅ ES向量相似度 + on_sell_days_boost提权 #### 功能 - 基于Elasticsearch向量计算相似度(名称向量 + 图片向量) - 自动应用 `on_sell_days_boost` 提权(0.9~1.1) - 无需任何命令行参数,开箱即用 #### 使用 ```bash python scripts/i2i_content_similar.py ``` ### 2. ✅ 代码规范:统一使用 logger #### 变更 - 移除所有 `print` 语句 - 统一使用 `logger` 记录日志 - 更好的日志级别控制 ### 3. ✅ run.sh 内存监控 #### 功能 - **25GB警告**: 打印警告日志,继续运行 - **30GB终止**: 强制kill进程,防止OOM - **每10秒检查**: 实时监控内存使用 - **详细日志**: `logs/memory_monitor.log` #### 使用 ```bash ./run.sh ``` ## 📋 快速开始 ### 1. 测试ES连接和向量 ```bash python scripts/test_es_connection.py ``` ### 2. 测试内存监控 ```bash ./test_memory_monitor.sh ``` ### 3. 运行所有任务(含监控) ```bash ./run.sh ``` ### 4. 查看监控日志 ```bash tail -f logs/memory_monitor.log ``` ## 📊 生成的索引 | 索引文件 | Redis Key | 提权 | TTL | |---------|-----------|------|-----| | `i2i_content_name_YYYYMMDD.txt` | `item:similar:content_name:{id}` | ✅ | 30天 | | `i2i_content_pic_YYYYMMDD.txt` | `item:similar:content_pic:{id}` | ✅ | 30天 | ## 📚 文档 | 文档 | 说明 | |------|------| | `QUICKSTART_NEW.md` | 5分钟快速开始 | | `ES_VECTOR_SIMILARITY.md` | ES向量技术详解 | | `RUN_SCRIPT_GUIDE.md` | 运行脚本使用指南 | | `MEMORY_MONITORING_UPDATE.md` | 内存监控详细说明 | | `FINAL_SUMMARY.md` | 完整更新总结 | ## 🔍 关键特性 ### ES向量相似度 ```python # 自动应用提权 base_score = knn_result['_score'] boost = knn_result['on_sell_days_boost'] # 0.9~1.1 final_score = base_score * boost ``` ### 内存监控 ```bash # 自动监控每个任务 python3 run_all.py & PID=$! check_memory $PID & # 后台监控 # 日志输出 [2025-10-17 15:20:15] ⚠️ 内存警告!当前使用: 26.45GB (>= 25GB) [2025-10-17 15:24:45] ❌ 内存超限!当前使用: 31.20GB, 强制终止 ``` ## ⚠️ 重要说明 ### 向量相似度 - ✅ 分数已包含 `on_sell_days_boost` 提权 - ✅ 输出到文件和Redis的都是最终分数 - ✅ 应用层无需再次应用提权 ### 内存监控 - ⚠️ 默认阈值:25GB警告,30GB终止 - ⚠️ 可在 `run.sh` 中修改阈值 - ⚠️ 监控日志保存在 `logs/memory_monitor.log` ### run_all.py 简化 - ❌ 移除了所有 `--only-*`, `--skip-*` 参数 - ✅ 只保留 `--debug` 参数 - ✅ 配置集中在 `offline_config.py` ## 🚀 一键运行 ```bash # 完整流程(含内存监控) cd /home/tw/recommendation/offline_tasks ./run.sh # 输出: # ====================================================================== # 开始运行离线任务 - 2025-10-17 14:00:00 # 内存监控: 警告阈值=25GB, 强制终止阈值=30GB # ====================================================================== # # >>> 步骤1: 调试模式运行(小数据量) # ✓ 调试模式完成 # # >>> 步骤2: 生产模式运行(大数据量) # ✓ 生产模式完成 # # >>> 步骤3: 加载到Redis # ✓ Redis加载完成 # # ====================================================================== # 所有任务完成 - 2025-10-17 16:30:00 # ====================================================================== ``` ## 🎯 核心改进 1. **更智能**: ES向量 + 上架天数提权 2. **更简单**: 无需参数,一键运行 3. **更安全**: 内存监控保护系统 4. **更规范**: 统一使用logger 5. **更完整**: 详细文档和测试工具 --- **更新日期**: 2025-10-17 **版本**: v2.1 **状态**: ✅ 已完成,可投入使用