Blame view

suggestion/RUNBOOK.md 2.7 KB
ff9efda0   tangwang   suggest
1
  # Suggestion 运行手册(Phase 2)
316c97c4   tangwang   feat: 完整落地多租户 sug...
2
  
ff9efda0   tangwang   suggest
3
  本文档面向研发/测试/运维,提供 Suggestion 功能在 Phase 2 的标准操作流程。
316c97c4   tangwang   feat: 完整落地多租户 sug...
4
5
6
  
  ## 1. 适用范围
  
ff9efda0   tangwang   suggest
7
8
  - Suggestion 全量构建(版本化索引 + alias 原子发布)
  - Suggestion 增量更新(watermark)
316c97c4   tangwang   feat: 完整落地多租户 sug...
9
  - Suggestion 查询接口:`GET /search/suggestions`
316c97c4   tangwang   feat: 完整落地多租户 sug...
10
  
ff9efda0   tangwang   suggest
11
  ## 2. 前置依赖
316c97c4   tangwang   feat: 完整落地多租户 sug...
12
13
14
15
  
  确保以下服务和配置可用:
  
  - Elasticsearch(开启鉴权时需提供账号密码)
ff9efda0   tangwang   suggest
16
17
  - MySQL(可访问 `shoplazza_search_log`
  - API 服务(默认 `6002`
316c97c4   tangwang   feat: 完整落地多租户 sug...
18
19
20
21
22
23
24
25
26
27
28
29
30
31
  
  建议环境变量:
  
  ```bash
  ES_HOST=http://localhost:9200
  ES_USERNAME=...
  ES_PASSWORD=...
  DB_HOST=...
  DB_PORT=3306
  DB_DATABASE=...
  DB_USERNAME=...
  DB_PASSWORD=...
  ```
  
ff9efda0   tangwang   suggest
32
  ## 3. 全量构建(推荐发布流程)
316c97c4   tangwang   feat: 完整落地多租户 sug...
33
  
ff9efda0   tangwang   suggest
34
  ### 3.1 执行
316c97c4   tangwang   feat: 完整落地多租户 sug...
35
36
  
  ```bash
ff9efda0   tangwang   suggest
37
38
39
40
41
  ./scripts/build_suggestions.sh 162 \
    --mode full \
    --days 365 \
    --publish-alias \
    --keep-versions 2
316c97c4   tangwang   feat: 完整落地多租户 sug...
42
43
  ```
  
316c97c4   tangwang   feat: 完整落地多租户 sug...
44
45
  ### 3.2 预期输出
  
ff9efda0   tangwang   suggest
46
  输出包含关键字段:
316c97c4   tangwang   feat: 完整落地多租户 sug...
47
  
ff9efda0   tangwang   suggest
48
49
50
51
52
  - `mode=full`
  - `index_name=..._vYYYYMMDDHHMMSS`
  - `alias_published=true`
  - `alias_publish.current_index` 指向新索引
  - `bulk_result.failed=0`
316c97c4   tangwang   feat: 完整落地多租户 sug...
53
  
ff9efda0   tangwang   suggest
54
  ## 4. 增量更新(watermark)
316c97c4   tangwang   feat: 完整落地多租户 sug...
55
  
ff9efda0   tangwang   suggest
56
  ### 4.1 执行
316c97c4   tangwang   feat: 完整落地多租户 sug...
57
58
  
  ```bash
ff9efda0   tangwang   suggest
59
60
61
  ./scripts/build_suggestions.sh 162 \
    --mode incremental \
    --overlap-minutes 30
316c97c4   tangwang   feat: 完整落地多租户 sug...
62
63
  ```
  
ff9efda0   tangwang   suggest
64
65
66
  ### 4.2 预期输出
  
  输出包含关键字段:
316c97c4   tangwang   feat: 完整落地多租户 sug...
67
  
ff9efda0   tangwang   suggest
68
69
70
71
72
  - `mode=incremental`
  - `target_index`(当前 alias 对应索引)
  - `query_window.since/until`
  - `updated_terms`
  - `bulk_result.failed=0`
316c97c4   tangwang   feat: 完整落地多租户 sug...
73
  
ff9efda0   tangwang   suggest
74
  ## 5. ES 验证步骤
316c97c4   tangwang   feat: 完整落地多租户 sug...
75
  
ff9efda0   tangwang   suggest
76
  > 若 ES 开启鉴权,请附带 `-u "$ES_USERNAME:$ES_PASSWORD"`。
316c97c4   tangwang   feat: 完整落地多租户 sug...
77
78
  
  ```bash
ff9efda0   tangwang   suggest
79
80
81
82
83
84
85
86
87
  ALIAS_NAME="${ES_INDEX_NAMESPACE:-}search_suggestions_tenant_162_current"
  
  curl "$ES_HOST/$ALIAS_NAME/_count?pretty"
  
  curl "$ES_HOST/$ALIAS_NAME/_search?pretty" -H 'Content-Type: application/json' -d '{
    "size": 10,
    "query": {"match_all": {}},
    "_source": ["lang", "text", "rank_score", "sources", "query_count_30d"]
  }'
316c97c4   tangwang   feat: 完整落地多租户 sug...
88
89
  ```
  
ff9efda0   tangwang   suggest
90
91
92
93
94
95
96
  重点检查:
  
  - alias 是否可查(说明发布成功)
  - 文档数 > 0
  - 关键字段存在:`lang/text/rank_score/completion/sat`
  
  ## 6. API 回归步骤
316c97c4   tangwang   feat: 完整落地多租户 sug...
97
98
  
  ```bash
ff9efda0   tangwang   suggest
99
100
  curl "http://localhost:6002/search/suggestions?q=shirt&size=10&language=en" \
    -H "X-Tenant-ID: 162"
316c97c4   tangwang   feat: 完整落地多租户 sug...
101
  
ff9efda0   tangwang   suggest
102
103
  curl "http://localhost:6002/search/suggestions?q=玩具&size=10&language=zh" \
    -H "X-Tenant-ID: 162"
316c97c4   tangwang   feat: 完整落地多租户 sug...
104
105
106
107
108
  ```
  
  通过标准:
  
  - 接口返回 `200`
ff9efda0   tangwang   suggest
109
110
  - `suggestions` 非空(针对已知存在 query)
  - `took_ms` 合理
316c97c4   tangwang   feat: 完整落地多租户 sug...
111
  
ff9efda0   tangwang   suggest
112
  ## 7. 一键验证脚本
316c97c4   tangwang   feat: 完整落地多租户 sug...
113
  
ff9efda0   tangwang   suggest
114
115
116
  ```bash
  ./scripts/rebuild_suggestions.sh 162
  ```
316c97c4   tangwang   feat: 完整落地多租户 sug...
117
  
ff9efda0   tangwang   suggest
118
  该脚本执行:
316c97c4   tangwang   feat: 完整落地多租户 sug...
119
  
ff9efda0   tangwang   suggest
120
121
122
123
  1. 全量重建并发布 alias
  2. 增量更新
  3. ES `_count` 与样例 `_search`
  4. API `/search/suggestions` 冒烟请求
316c97c4   tangwang   feat: 完整落地多租户 sug...
124
  
ff9efda0   tangwang   suggest
125
  ## 8. 发布检查清单
316c97c4   tangwang   feat: 完整落地多租户 sug...
126
  
ff9efda0   tangwang   suggest
127
128
129
130
131
  - [ ] 全量构建 `bulk_result.failed=0`
  - [ ] alias 指向新版本索引
  - [ ] 增量更新成功(`mode=incremental`
  - [ ] API 冒烟通过
  - [ ] 文档与脚本已同步