4d824a77
tangwang
所有租户共用一套统一配置.tena...
|
1
|
# Unified Configuration for Multi-Tenant Search Engine
|
33839b37
tangwang
属性值参与搜索:
|
2
3
|
# 统一配置文件,所有租户共用一套配置
# 注意:索引结构由 mappings/search_products.json 定义,此文件只配置搜索行为
|
4d824a77
tangwang
所有租户共用一套统一配置.tena...
|
4
5
6
7
|
# Elasticsearch Index
es_index_name: "search_products"
|
86d8358b
tangwang
config optimize
|
8
9
10
11
|
# Config assets
assets:
query_rewrite_dictionary_path: "config/dictionaries/query_rewrite.dict"
|
41f0b2e9
tangwang
product_enrich支持并发
|
12
13
14
15
|
# Product content understanding (LLM enrich-content) configuration
product_enrich:
max_workers: 40
|
33839b37
tangwang
属性值参与搜索:
|
16
|
# ES Index Settings (基础设置)
|
4d824a77
tangwang
所有租户共用一套统一配置.tena...
|
17
18
19
20
21
|
es_settings:
number_of_shards: 1
number_of_replicas: 0
refresh_interval: "30s"
|
33839b37
tangwang
属性值参与搜索:
|
22
|
# 字段权重配置(用于搜索时的字段boost)
|
bd96cead
tangwang
1. 动态多语言字段与统一策略配置
|
23
24
|
# 统一按“字段基名”配置;查询时按 search_langs 动态拼接 .{lang}。
# 若需要按某个语言单独调权,也可以加显式 key(例如 title.de: 3.2)。
|
33839b37
tangwang
属性值参与搜索:
|
25
|
field_boosts:
|
bd96cead
tangwang
1. 动态多语言字段与统一策略配置
|
26
27
28
|
title: 3.0
brief: 1.5
description: 1.0
|
a8261ece
tangwang
检索效果优化
|
29
|
qanchors: 1.5
|
bd96cead
tangwang
1. 动态多语言字段与统一策略配置
|
30
31
32
|
vendor: 1.5
category_path: 1.5
category_name_text: 1.5
|
33839b37
tangwang
属性值参与搜索:
|
33
|
tags: 1.0
|
e874eb50
tangwang
docs
|
34
35
36
|
option1_values: 0.6
option2_values: 0.4
option3_values: 0.4
|
33839b37
tangwang
属性值参与搜索:
|
37
|
|
33839b37
tangwang
属性值参与搜索:
|
38
|
# Query Configuration(查询配置)
|
4d824a77
tangwang
所有租户共用一套统一配置.tena...
|
39
|
query_config:
|
33839b37
tangwang
属性值参与搜索:
|
40
|
# 支持的语言
|
4d824a77
tangwang
所有租户共用一套统一配置.tena...
|
41
42
43
|
supported_languages:
- "zh"
- "en"
|
2739b281
tangwang
多语言索引调整
|
44
|
default_language: "en"
|
33839b37
tangwang
属性值参与搜索:
|
45
|
|
345d960b
tangwang
1. 删除全局 enable_tr...
|
46
|
# 功能开关(翻译开关由tenant_config控制)
|
4d824a77
tangwang
所有租户共用一套统一配置.tena...
|
47
48
|
enable_text_embedding: true
enable_query_rewrite: true
|
4d824a77
tangwang
所有租户共用一套统一配置.tena...
|
49
|
|
1556989b
tangwang
query翻译等待超时逻辑
|
50
51
52
53
54
|
# 查询解析阶段:翻译与 query 向量并发执行,共用同一等待预算(毫秒)。
# 检测语言已在租户 index_languages 内:较短;不在索引语言内:较长(翻译对召回更关键)。
translation_embedding_wait_budget_ms_source_in_index: 80
translation_embedding_wait_budget_ms_source_not_in_index: 200
|
bd96cead
tangwang
1. 动态多语言字段与统一策略配置
|
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
# 动态多语言检索字段配置
# multilingual_fields 会被拼成 title.{lang}/brief.{lang}/... 形式;
# shared_fields 为无语言后缀字段。
search_fields:
multilingual_fields:
- "title"
- "brief"
- "description"
- "vendor"
- "category_path"
- "category_name_text"
shared_fields:
- "tags"
- "option1_values"
- "option2_values"
- "option3_values"
core_multilingual_fields:
- "title"
- "brief"
- "vendor"
- "category_name_text"
|
c90f80ed
tangwang
相关性优化
|
77
|
# 统一文本召回策略(主查询 + 翻译查询 + 原始查询兜底)
|
bd96cead
tangwang
1. 动态多语言字段与统一策略配置
|
78
79
80
81
82
83
84
|
text_query_strategy:
base_minimum_should_match: "75%"
translation_minimum_should_match: "75%"
translation_boost: 0.4
translation_boost_when_source_missing: 1.0
source_boost_when_missing: 0.6
original_query_fallback_boost_when_translation_missing: 0.2
|
bd96cead
tangwang
1. 动态多语言字段与统一策略配置
|
85
|
tie_breaker_base_query: 0.9
|
bd96cead
tangwang
1. 动态多语言字段与统一策略配置
|
86
|
|
33839b37
tangwang
属性值参与搜索:
|
87
88
89
|
# Embedding字段名称
text_embedding_field: "title_embedding"
image_embedding_field: null
|
325eec03
tangwang
1. 日志、配置基础设施,使用优化
|
90
|
|
33839b37
tangwang
属性值参与搜索:
|
91
92
|
# 返回字段配置(_source includes)
# null表示返回所有字段,[]表示不返回任何字段,列表表示只返回指定字段
|
a7cc9078
tangwang
sku排序
|
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
# 下列字段与 api/result_formatter.py(SpuResult 填充)及 search/searcher.py(SKU 排序/主图替换)一致
source_fields:
- spu_id
- handle
- title
- brief
- description
- vendor
- category_name
- category_name_text
- category_path
- category_id
- category_level
- category1_name
- category2_name
- category3_name
- tags
- min_price
- compare_at_price
- image_url
- sku_prices
- sku_weights
- sku_weight_units
- total_inventory
- option1_name
- option1_values
- specifications
- skus
|
70dab99f
tangwang
add logs
|
121
122
123
|
# KNN boost配置(向量召回的boost值)
knn_boost: 0.25 # Lower boost for embedding recall
|
4d824a77
tangwang
所有租户共用一套统一配置.tena...
|
124
|
|
4d824a77
tangwang
所有租户共用一套统一配置.tena...
|
125
126
127
128
|
# Function Score配置(ES层打分规则)
function_score:
score_mode: "sum"
boost_mode: "multiply"
|
4d824a77
tangwang
所有租户共用一套统一配置.tena...
|
129
130
|
functions: []
|
42e3aea6
tangwang
tidy
|
131
|
# 重排配置(provider/URL 在 services.rerank)
|
4d824a77
tangwang
所有租户共用一套统一配置.tena...
|
132
|
rerank:
|
5f7d7f09
tangwang
性能测试报告.md
|
133
|
enabled: true
|
c51d254f
tangwang
性能测试
|
134
|
rerank_window: 384
|
42e3aea6
tangwang
tidy
|
135
|
timeout_sec: 15.0
|
506c39b7
tangwang
feat(search): 统一重...
|
136
137
|
weight_es: 0.4
weight_ai: 0.6
|
ff32d894
tangwang
rerank
|
138
139
|
rerank_query_template: "{query}"
rerank_doc_template: "{title}"
|
4d824a77
tangwang
所有租户共用一套统一配置.tena...
|
140
|
|
42e3aea6
tangwang
tidy
|
141
142
143
|
# 可扩展服务/provider 注册表(单一配置源)
services:
translation:
|
5e4dc8e4
tangwang
翻译架构按“一个翻译服务 +
|
144
|
service_url: "http://127.0.0.1:6006"
|
b754fd41
tangwang
图片向量化支持优先级参数
|
145
|
default_model: "nllb-200-distilled-600m"
|
5e4dc8e4
tangwang
翻译架构按“一个翻译服务 +
|
146
|
default_scene: "general"
|
42e3aea6
tangwang
tidy
|
147
|
timeout_sec: 10.0
|
d4cadc13
tangwang
翻译重构
|
148
|
cache:
|
d4cadc13
tangwang
翻译重构
|
149
150
|
ttl_seconds: 62208000
sliding_expiration: true
|
5e4dc8e4
tangwang
翻译架构按“一个翻译服务 +
|
151
|
capabilities:
|
d4cadc13
tangwang
翻译重构
|
152
|
qwen-mt:
|
5e4dc8e4
tangwang
翻译架构按“一个翻译服务 +
|
153
|
enabled: true
|
0fd2f875
tangwang
translate
|
154
|
backend: "qwen_mt"
|
5e4dc8e4
tangwang
翻译架构按“一个翻译服务 +
|
155
|
model: "qwen-mt-flash"
|
0fd2f875
tangwang
translate
|
156
|
base_url: "https://dashscope-us.aliyuncs.com/compatible-mode/v1"
|
42e3aea6
tangwang
tidy
|
157
|
timeout_sec: 10.0
|
5e4dc8e4
tangwang
翻译架构按“一个翻译服务 +
|
158
|
use_cache: true
|
a0a173ae
tangwang
last
|
159
|
llm:
|
5e4dc8e4
tangwang
翻译架构按“一个翻译服务 +
|
160
|
enabled: true
|
0fd2f875
tangwang
translate
|
161
|
backend: "llm"
|
a0a173ae
tangwang
last
|
162
|
model: "qwen-flash"
|
0fd2f875
tangwang
translate
|
163
|
base_url: "https://dashscope-us.aliyuncs.com/compatible-mode/v1"
|
a0a173ae
tangwang
last
|
164
|
timeout_sec: 30.0
|
cd4ce66d
tangwang
trans logs
|
165
|
use_cache: true
|
d4cadc13
tangwang
翻译重构
|
166
|
deepl:
|
cd4ce66d
tangwang
trans logs
|
167
|
enabled: true
|
0fd2f875
tangwang
translate
|
168
169
|
backend: "deepl"
api_url: "https://api.deepl.com/v2/translate"
|
d4cadc13
tangwang
翻译重构
|
170
|
timeout_sec: 10.0
|
d4cadc13
tangwang
翻译重构
|
171
|
glossary_id: ""
|
cd4ce66d
tangwang
trans logs
|
172
|
use_cache: true
|
0fd2f875
tangwang
translate
|
173
174
175
176
177
|
nllb-200-distilled-600m:
enabled: true
backend: "local_nllb"
model_id: "facebook/nllb-200-distilled-600M"
model_dir: "./models/translation/facebook/nllb-200-distilled-600M"
|
ea293660
tangwang
CTranslate2
|
178
179
180
181
|
ct2_model_dir: "./models/translation/facebook/nllb-200-distilled-600M/ctranslate2-float16"
ct2_compute_type: "float16"
ct2_conversion_quantization: "float16"
ct2_auto_convert: true
|
46ce858d
tangwang
在NLLB模型的 /data/sa...
|
182
|
ct2_inter_threads: 4
|
ea293660
tangwang
CTranslate2
|
183
|
ct2_intra_threads: 0
|
46ce858d
tangwang
在NLLB模型的 /data/sa...
|
184
|
ct2_max_queued_batches: 32
|
ea293660
tangwang
CTranslate2
|
185
|
ct2_batch_type: "examples"
|
46ce858d
tangwang
在NLLB模型的 /data/sa...
|
186
187
188
|
ct2_decoding_length_mode: "source"
ct2_decoding_length_extra: 8
ct2_decoding_length_min: 32
|
0fd2f875
tangwang
translate
|
189
190
|
device: "cuda"
torch_dtype: "float16"
|
4747e2f4
tangwang
embedding perform...
|
191
|
batch_size: 64
|
0fd2f875
tangwang
translate
|
192
|
max_input_length: 256
|
3eff49b7
tangwang
trans nllb-200-di...
|
193
|
max_new_tokens: 64
|
0fd2f875
tangwang
translate
|
194
|
num_beams: 1
|
cd4ce66d
tangwang
trans logs
|
195
|
use_cache: true
|
0fd2f875
tangwang
translate
|
196
197
198
199
200
|
opus-mt-zh-en:
enabled: true
backend: "local_marian"
model_id: "Helsinki-NLP/opus-mt-zh-en"
model_dir: "./models/translation/Helsinki-NLP/opus-mt-zh-en"
|
ea293660
tangwang
CTranslate2
|
201
202
203
204
205
206
207
208
|
ct2_model_dir: "./models/translation/Helsinki-NLP/opus-mt-zh-en/ctranslate2-float16"
ct2_compute_type: "float16"
ct2_conversion_quantization: "float16"
ct2_auto_convert: true
ct2_inter_threads: 1
ct2_intra_threads: 0
ct2_max_queued_batches: 0
ct2_batch_type: "examples"
|
0fd2f875
tangwang
translate
|
209
210
211
212
213
214
|
device: "cuda"
torch_dtype: "float16"
batch_size: 16
max_input_length: 256
max_new_tokens: 256
num_beams: 1
|
cd4ce66d
tangwang
trans logs
|
215
|
use_cache: true
|
0fd2f875
tangwang
translate
|
216
217
218
219
220
|
opus-mt-en-zh:
enabled: true
backend: "local_marian"
model_id: "Helsinki-NLP/opus-mt-en-zh"
model_dir: "./models/translation/Helsinki-NLP/opus-mt-en-zh"
|
ea293660
tangwang
CTranslate2
|
221
222
223
224
225
226
227
228
|
ct2_model_dir: "./models/translation/Helsinki-NLP/opus-mt-en-zh/ctranslate2-float16"
ct2_compute_type: "float16"
ct2_conversion_quantization: "float16"
ct2_auto_convert: true
ct2_inter_threads: 1
ct2_intra_threads: 0
ct2_max_queued_batches: 0
ct2_batch_type: "examples"
|
0fd2f875
tangwang
translate
|
229
230
231
232
233
234
|
device: "cuda"
torch_dtype: "float16"
batch_size: 16
max_input_length: 256
max_new_tokens: 256
num_beams: 1
|
cd4ce66d
tangwang
trans logs
|
235
|
use_cache: true
|
42e3aea6
tangwang
tidy
|
236
|
embedding:
|
950a640e
tangwang
embeddings
|
237
|
provider: "http" # http
|
42e3aea6
tangwang
tidy
|
238
239
|
providers:
http:
|
7214c2e7
tangwang
mplemented**
|
240
241
|
text_base_url: "http://127.0.0.1:6005"
image_base_url: "http://127.0.0.1:6008"
|
07cf5a93
tangwang
START_EMBEDDING=...
|
242
|
# 服务内文本后端(embedding 进程启动时读取)
|
efd435cf
tangwang
tei性能调优:
|
243
|
backend: "tei" # tei | local_st
|
07cf5a93
tangwang
START_EMBEDDING=...
|
244
245
246
|
backends:
tei:
base_url: "http://127.0.0.1:8080"
|
efd435cf
tangwang
tei性能调优:
|
247
|
timeout_sec: 20
|
07cf5a93
tangwang
START_EMBEDDING=...
|
248
249
250
251
252
253
|
model_id: "Qwen/Qwen3-Embedding-0.6B"
local_st:
model_id: "Qwen/Qwen3-Embedding-0.6B"
device: "cuda"
batch_size: 32
normalize_embeddings: true
|
86d8358b
tangwang
config optimize
|
254
255
256
257
258
259
260
261
262
263
264
265
266
|
# 服务内图片后端(embedding 进程启动时读取)
image_backend: "clip_as_service" # clip_as_service | local_cnclip
image_backends:
clip_as_service:
server: "grpc://127.0.0.1:51000"
model_name: "CN-CLIP/ViT-L-14"
batch_size: 8
normalize_embeddings: true
local_cnclip:
model_name: "ViT-L-14"
device: null
batch_size: 8
normalize_embeddings: true
|
42e3aea6
tangwang
tidy
|
267
|
rerank:
|
701ae503
tangwang
docs
|
268
|
provider: "http"
|
42e3aea6
tangwang
tidy
|
269
270
271
272
|
base_url: "http://127.0.0.1:6007"
providers:
http:
base_url: "http://127.0.0.1:6007"
|
701ae503
tangwang
docs
|
273
|
service_url: "http://127.0.0.1:6007/rerank"
|
86d8358b
tangwang
config optimize
|
274
275
276
|
request:
max_docs: 1000
normalize: true
|
701ae503
tangwang
docs
|
277
|
# 服务内后端(reranker 进程启动时读取)
|
22ae00c7
tangwang
product_annotator
|
278
|
backend: "qwen3_vllm" # bge | qwen3_vllm | qwen3_transformers | dashscope_rerank
|
701ae503
tangwang
docs
|
279
280
281
282
283
284
285
286
287
288
289
290
|
backends:
bge:
model_name: "BAAI/bge-reranker-v2-m3"
device: null
use_fp16: true
batch_size: 64
max_length: 512
cache_dir: "./model_cache"
enable_warmup: true
qwen3_vllm:
model_name: "Qwen/Qwen3-Reranker-0.6B"
engine: "vllm"
|
07cf5a93
tangwang
START_EMBEDDING=...
|
291
|
max_model_len: 256
|
701ae503
tangwang
docs
|
292
|
tensor_parallel_size: 1
|
07cf5a93
tangwang
START_EMBEDDING=...
|
293
294
|
gpu_memory_utilization: 0.36
dtype: "float16"
|
bc089b43
tangwang
refactor(reranker...
|
295
296
|
enable_prefix_caching: true
enforce_eager: false
|
9f5994b4
tangwang
reranker
|
297
298
299
|
infer_batch_size: 64
sort_by_doc_length: true
length_sort_mode: "char" # char | token
|
77bfa7e3
tangwang
query translate
|
300
|
instruction: "rank products by given query"
|
d31c7f65
tangwang
补充云服务reranker
|
301
302
|
qwen3_transformers:
model_name: "Qwen/Qwen3-Reranker-0.6B"
|
77bfa7e3
tangwang
query translate
|
303
|
instruction: "rank products by given query"
|
d31c7f65
tangwang
补充云服务reranker
|
304
305
306
307
308
309
310
311
312
313
314
|
max_length: 8192
batch_size: 64
use_fp16: true
attn_implementation: "flash_attention_2"
dashscope_rerank:
model_name: "qwen3-rerank"
# 按地域选择 endpoint:
# 中国: https://dashscope.aliyuncs.com/compatible-api/v1/reranks
# 新加坡: https://dashscope-intl.aliyuncs.com/compatible-api/v1/reranks
# 美国: https://dashscope-us.aliyuncs.com/compatible-api/v1/reranks
endpoint: "https://dashscope.aliyuncs.com/compatible-api/v1/reranks"
|
0d3e73ba
tangwang
rerank mini batch
|
315
316
|
api_key_env: "RERANK_DASHSCOPE_API_KEY_CN"
timeout_sec: 10.0 #
|
d31c7f65
tangwang
补充云服务reranker
|
317
|
top_n_cap: 0 # 0 表示 top_n=当前请求文档数;>0 则限制 top_n 上限
|
0d3e73ba
tangwang
rerank mini batch
|
318
|
batchsize: 64 # 0 关闭;>0 启用并发小包调度(top_n/top_n_cap 仍生效,分包后全局截断)
|
d31c7f65
tangwang
补充云服务reranker
|
319
320
321
|
instruct: "Given a shopping query, rank product titles by relevance"
max_retries: 2
retry_backoff_sec: 0.2
|
42e3aea6
tangwang
tidy
|
322
|
|
cadc77b6
tangwang
索引字段名、变量名、API数据结构...
|
323
|
# SPU配置(已启用,使用嵌套skus)
|
4d824a77
tangwang
所有租户共用一套统一配置.tena...
|
324
325
|
spu_config:
enabled: true
|
cadc77b6
tangwang
索引字段名、变量名、API数据结构...
|
326
|
spu_field: "spu_id"
|
4d824a77
tangwang
所有租户共用一套统一配置.tena...
|
327
|
inner_hits_size: 10
|
33839b37
tangwang
属性值参与搜索:
|
328
329
330
|
# 配置哪些option维度参与检索(进索引、以及在线搜索)
# 格式为list,选择option1/option2/option3中的一个或多个
searchable_option_dimensions: ['option1', 'option2', 'option3']
|
0064e946
tangwang
feat: 增量索引服务、租户配置...
|
331
332
|
# 租户配置(Tenant Configuration)
|
038e4e2f
tangwang
refactor(i18n): t...
|
333
|
# 每个租户可配置主语言 primary_language 与索引语言 index_languages(主市场语言,商家可勾选)
|
6f7840cf
tangwang
refactor: rename ...
|
334
|
# 默认 index_languages: [en, zh],可配置为任意 SOURCE_LANG_CODE_MAP.keys() 的子集
|
0064e946
tangwang
feat: 增量索引服务、租户配置...
|
335
|
tenant_config:
|
0064e946
tangwang
feat: 增量索引服务、租户配置...
|
336
|
default:
|
2739b281
tangwang
多语言索引调整
|
337
|
primary_language: "en"
|
038e4e2f
tangwang
refactor(i18n): t...
|
338
|
index_languages: ["en", "zh"]
|
0064e946
tangwang
feat: 增量索引服务、租户配置...
|
339
340
341
|
tenants:
"1":
primary_language: "zh"
|
038e4e2f
tangwang
refactor(i18n): t...
|
342
|
index_languages: ["zh", "en"]
|
0064e946
tangwang
feat: 增量索引服务、租户配置...
|
343
344
|
"2":
primary_language: "en"
|
038e4e2f
tangwang
refactor(i18n): t...
|
345
|
index_languages: ["en", "zh"]
|
0064e946
tangwang
feat: 增量索引服务、租户配置...
|
346
347
|
"3":
primary_language: "zh"
|
038e4e2f
tangwang
refactor(i18n): t...
|
348
|
index_languages: ["zh", "en"]
|
0064e946
tangwang
feat: 增量索引服务、租户配置...
|
349
350
|
"162":
primary_language: "zh"
|
038e4e2f
tangwang
refactor(i18n): t...
|
351
|
index_languages: ["zh", "en"]
|
cff5e86f
tangwang
reindex
|
352
353
|
"170":
primary_language: "en"
|
038e4e2f
tangwang
refactor(i18n): t...
|
354
|
index_languages: ["en", "zh"]
|