25 Nov, 2025
1 commit
-
主要是对 分类 属性 子sku 等重要字段的处理。 参考文档《 @docs/索引字段说明v2-mapping结构.md 》《 @docs/索引字段说明v2.md 》 feat: 1. 更新 field_types.py 添加 hanlp_index/hanlp_standard 分析器映射(映射到 CHINESE_ECOMMERCE/CHINESE_ECOMMERCE_QUERY) 支持 keyword_normalizer 配置(用于 vendor.keyword 的 lowercase normalizer) 更新 get_default_analyzers() 添加 hanlp 分析器和 lowercase normalizer 修复 image_embedding 的 url 字段类型为 text 2. 更新 config.yaml(32-207行) 移除无用字段:handle, seo_title, seo_description, seo_keywords, shoplazza_created_at, shoplazza_updated_at 添加中英文字段:title_zh, title_en, brief_zh, brief_en, description_zh, description_en, vendor_zh, vendor_en 添加 category 多层级字段:category_path_zh, category_path_en, category_name_zh, category_name_en, category_id, category_name, category_level, category1_name, category2_name, category3_name 添加 specifications 嵌套字段 添加 option 名称字段:option1_name, option2_name, option3_name 添加 SKU 扁平化字段:sku_prices, sku_weights, sku_weight_units, total_inventory 更新 skus 嵌套结构以匹配目标 mapping 添加 image_embedding 嵌套字段 更新 indexes 配置以使用新字段名 3. 更新 config_loader.py 添加 keyword_normalizer 字段支持 4. 重构 spu_transformer.py 添加 load_option_data() 方法从 option 表加载数据 更新 transform_batch() 加载 option 数据 重构 _transform_spu_to_doc(): 实现中英文字段映射(暂时只填充中文) 实现 category 多层级字段映射和 category_path 解析 实现 specifications 构建(从 option 表获取 name,从 SKU 获取 value) 实现 option 名称字段映射 实现 SKU 扁平化字段计算 更新 skus 嵌套结构 重构 _transform_sku_row() 以匹配新的 SKU 结构 移除 SEO 和 handle 字段的处理
20 Nov, 2025
1 commit
14 Nov, 2025
5 commits
-
2. 向量服务不用本地预估,改用网络服务
13 Nov, 2025
9 commits
-
创建统一配置文件 config/config.yaml(从 base 配置迁移,移除 customer_name) 创建脚本体系 启动、停止、重启、moc数据到mysql、从mysql灌入数据到ES 这些脚本 restart.sh run.sh 内部调用 启动前后端 scripts/mock_data.sh mock数据 -> mysql scripts/ingest.sh mysql->ES
-
主要变更: 1. 创建.env文件,添加MySQL数据库配置(Shoplazza生产环境) 2. 更新config/env_config.py,添加DB_CONFIG配置 3. 创建demo_base.sh脚本,完整的演示流程: - 生成测试数据 - 导入MySQL - 导入Elasticsearch - 启动后端服务 - 启动前端服务 4. 创建create_base_frontend.py,生成base配置专用的前端JS 5. 创建frontend/base.html,base配置专用前端页面 6. 更新frontend_server.py,支持base.html路由和PORT环境变量 7. 创建stop_base.sh,停止演示服务脚本 使用方式: bash scripts/demo_base.sh [tenant_id] 访问地址: http://localhost:6003/base
-
主要变更: 1. 去掉数据源应用结构配置化,我们只针对店匠的spu sku表设计索引,数据灌入流程是写死的(只是满足测试需求,后面外层应用负责数据全量+增量灌入)。搜索系统主要关注如何适配外部搜索需求 目前有两个数据灌入脚本,一种是之前的,一种是现在的从两个店匠的表sku表+spu表读取并且以spu为单位组织doc。 - 配置只关注ES搜索相关配置,提高可维护性 - 创建base配置(店匠通用配置) 2. 索引结构重构(SPU维度) - 所有客户共享search_products索引,通过tenant_id隔离 - 支持嵌套variants字段(SKU变体数组) - 创建SPUTransformer用于SPU数据转换 3. API响应格式优化 - 约定一套搜索结果的格式,而不是直接暴露ES doc的结构(_id _score _source内的字段) - 添加ProductResult和VariantResult模型 - 添加suggestions和related_searches字段 (预留接口,逻辑暂未实现) 4. 数据导入流程 - 创建店匠数据导入脚本(ingest_shoplazza.py) - Pipeline层决定数据源,配置不包含数据源信息 - 创建测试数据生成和导入脚本 5. 文档更新 - 更新设计文档,反映新架构 - 创建BASE_CONFIG_GUIDE.md使用指南
12 Nov, 2025
2 commits
-
核心改动: 1. 配置化打分规则 - 新增FunctionScoreConfig和RerankConfig配置类 - 支持filter_weight、field_value_factor、decay三种ES原生function - 从代码中移除硬编码的打分逻辑 2. 配置模型定义 - FunctionScoreConfig: score_mode, boost_mode, functions - RerankConfig: enabled, expression(当前禁用) - 添加到CustomerConfig中 3. 查询构建器改造 - MultiLanguageQueryBuilder.init添加function_score_config引用 - _build_score_functions从配置动态构建ES functions - 支持配置的score_mode和boost_mode 4. 配置文件示例 - 添加完整的function_score配置示例 - 包含3种function类型的详细注释 - 提供常见场景的配置模板 5. ES原生能力支持 - Filter+Weight: 条件匹配提权 - Field Value Factor: 字段值映射打分 * modifier支持: none, log, log1p, log2p, ln, ln1p, ln2p, square, sqrt, reciprocal - Decay Functions: 衰减函数 * 支持: gauss, exp, linear 配置示例: - 7天新品提权(weight: 1.3) - 30天新品提权(weight: 1.15) - 有视频提权(weight: 1.05) - 销量因子(field_value_factor + log1p) - 时间衰减(gauss decay) 优势: ✓ 配置化 - 客户自己调整,无需改代码 ✓ 基于ES原生 - 性能最优,功能完整 ✓ 灵活易用 - YAML格式,有示例和注释 ✓ 统一约定 - function_score必需,简化设计 参考:https://www.elastic.co/docs/reference/query-languages/query-dsl/query-dsl-function-score-query
11 Nov, 2025
2 commits
08 Nov, 2025
3 commits