13 Mar, 2026

1 commit


12 Mar, 2026

1 commit


10 Mar, 2026

4 commits

  • tangwang
     
  • - 配置改为“字段基名 + 动态语言后缀”方案,已不再依赖旧 `indexes`。
    [config.yaml](/data/saas-search/config/config.yaml#L17)
    - `search_fields` / `text_query_strategy` 已进入强校验与解析流程。
    [config_loader.py](/data/saas-search/config/config_loader.py#L254)
    
    2. 查询语言计划与翻译等待策略
    - `QueryParser` 现在产出
      `query_text_by_lang`、`search_langs`、`source_in_index_languages`。
    [query_parser.py](/data/saas-search/query/query_parser.py#L41)
    - 你要求的两种翻译路径都在:
      - 源语言不在店铺 `index_languages`:`translate_multi_async` + 等待
        future
      - 源语言在 `index_languages`:`translate_multi(...,
        async_mode=True)`,尽量走缓存
    [query_parser.py](/data/saas-search/query/query_parser.py#L284)
    
    3. ES 查询统一文本策略(无 AST 分支)
    - 主召回按 `search_langs` 动态拼 `field.{lang}`,翻译语种做次权重
      `should`。
    [es_query_builder.py](/data/saas-search/search/es_query_builder.py#L454)
    - 布尔 AST 路径已删除,仅保留统一文本策略。
    [es_query_builder.py](/data/saas-search/search/es_query_builder.py#L185)
    
    4. LanguageDetector 优化
    - 从“拉丁字母默认英文”升级为:脚本优先 +
      拉丁语系打分(词典/变音/后缀)。
    [language_detector.py](/data/saas-search/query/language_detector.py#L68)
    
    5. 布尔能力清理(补充)
    - 已删除废弃模块:
    [boolean_parser.py](/data/saas-search/search/boolean_parser.py)
    - `search/__init__` 已无相关导出。
    [search/__init__.py](/data/saas-search/search/__init__.py)
    
    6. `indexes` 过时收口(补充)
    - 兼容函数改为基于动态字段生成,不再依赖 `config.indexes`。
    [utils.py](/data/saas-search/config/utils.py#L24)
    - Admin 配置接口改为返回动态字段配置,不再暴露 `num_indexes`。
    [admin.py](/data/saas-search/api/routes/admin.py#L52)
    
    7. suggest
    tangwang
     
  • 1. 新增 `scripts/init_env.sh`
    - 若 `.env` 不存在,从 `.env.example` 复制生成
    - 支持 `--force`:覆盖 `.env` 并备份为 `.env.bak`
    - 首次搭建时统一执行:`./scripts/init_env.sh`
    
     2. 统一加载逻辑 `scripts/lib/load_env.sh`
    - 移除 `activate.sh` 和 `service_ctl.sh` 中的重复解析逻辑
    - 使用共享的 `load_env_file`,并改为 `eval "$(printf 'export %s=%q\n'
      "$key" "$value")"` 安全导出
    - 支持含 ``、`$`、空格等特殊字符的值(需在 `.env` 中用引号包裹)
    
     3. 使用方式
    - **activate.sh**:`source scripts/lib/load_env.sh` 后调用
      `load_env_file`
    - **service_ctl.sh**:同上,去掉内联的 `load_env_file` 实现
    - **create_tenant_index.sh**:改为使用共享 loader,不再用 `set -a;
      source .env`
    
     4. 文档更新
    - **README.md**:在快速开始中加入 `./scripts/init_env.sh`
    - **docs/QUICKSTART.md**:说明 `init_env.sh`
      用法,并强调含特殊字符的密码需加引号
    - **.env.example**:补充注释说明引号规则
    
     5. setup.sh
    - 用 `./scripts/init_env.sh` 替代原先的 `cp .env.example .env`
    
    ---
    
    **推荐流程**:
    ```bash
    ./scripts/create_venv.sh
    ./scripts/init_env.sh     从 .env.example 生成本地 .env
    source activate.sh
    ./run.sh
    ```
    
    **密码写法**:若密码包含 ``、`$`、`&`、空格等,需加引号,例如:
    ```env
    DB_PASSWORD="qY8tgodLoA&KTyQ"
    ES_PASSWORD="4hOaLaf41y2VuI8y"
    ```
    tangwang
     
  • tangwang
     

09 Mar, 2026

2 commits


06 Mar, 2026

1 commit


26 Jan, 2026

1 commit


29 Nov, 2025

1 commit


14 Nov, 2025

1 commit


13 Nov, 2025

3 commits

  • tangwang
     
  • tangwang
     
  • 主要变更:
    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
    tangwang
     

08 Nov, 2025

2 commits