39e63ad1
tangwang
docs
|
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
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
121
122
|
1.2 查询方案
对数组字段使用 dis_max,只取最高分,避免累加。
其他重点字段
1. Sku title
2. category
2.1 Mysql
在spu表中:
Field Type
category varchar(255)
category_id bigint(20)
category_google_id bigint(20)
category_level int(11)
category_path varchar(500)
2.2 ES索引
2.2.1 输入数据
设计 1,2,3级分类 三个字段,的 category (原始文本)
2.2.2 索引方法
设计要求:
1. 支持facet(精确过滤、keyword聚合),并且性能需要足够高。
2. 支持普通搜索模糊匹配(用户原始query可能包括分类词)。
3. 模糊匹配要考虑多语言
方案:采用方案2
1. categoryPath索引 + Prefix 查询(categoryPath.keyword: "服装/男装")(如果满足条件的key太多的则性能较差,比如 查询的是一级类目,类目树叶子节点太多时性能较差)
2. categoryPath支撑模糊查询 和 多级cate keyword索引支撑精确查询。 索引阶段冗余,查询性能高。
"category_path_zh": { // 提供模糊查询功能,辅助相关性计算
"type": "text",
"analyzer": "hanlp_index",
"search_analyzer": "hanlp_standard"
},
"category_path_en": { // 提供模糊查询功能,辅助相关性计算
"type": "text",
"analyzer": "english",
"search_analyzer": "english"
},
"category_path": { // 用于多层级的筛选、精确匹配
"type": "keyword",
"normalizer": "lowercase"
},
"category_id": {
"type": "keyword"
},
"category_name": {
"type": "keyword"
},
"category_level": {
"type": "integer"
},
"category1_name": { // 不同层级下 可能有同名的情况,因此提供一二三级分开的查询方式
"type": "keyword"
},
"category2_name": {
"type": "keyword"
},
"category3_name": {
"type": "keyword"
},
3. tags
3.1 数据源
多值
标签
最多输入250个标签,每个不得超过500字符,多个标签请用「英文逗号」隔开
新品,热卖,爆款
耳机,头戴式,爆款
分割后 list形式灌入
3.2 Mysql
3.3 ES索引
3.3.1 输入数据
3.3.2 索引方法
4. 供应商
4.1 数据源
4.2 Mysql
4.3 ES索引
4.3.1 输入数据
4.3.2 索引方法
5. 款式/选项值(options)
5.1 数据源
以下区域字段,商品属性为M(商品主体)的行需填写款式名称,商品属性为P(子款式)的行需填写款式值信息,商品属性为S(单一款式商品)的行无需填写
款式1 款式2 款式3
最多255字符 最多255字符 最多255字符
SIZE COLOR
S red
...
5.2 Mysql
1. API 在 SPU 的维度直接返回3个属性定义,存储在 shoplazza_product_option 中:
1. API在 SKU的维度直接返回3个属性值,存储在 shoplazza_product_sku 表的 option 相关的字段中:
5.3 ES索引
|
5dcddc06
tangwang
索引重构
|
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
|
另外还需要包含一个单独的字段,main_option (即店铺主题装修里面配置的 颜色切换 - 变体名称,也就是列表页商品的子sku显示维度)
"main_option": { "type": "keyword" }
查询指定款式
{
"query": {
"nested": {
"path": "specifications",
"query": {
"bool": {
"must": [
{ "term": { "specifications.name ": "颜色" } },
{ "term": { "specifications.value": "绿色" } }
]
}
}
}
}
}
按 name 做分面搜索(聚合)
{
"aggs": {
"specs": {
"nested": { "path": "specifications" },
"aggs": {
"by_name": {
"terms": {
"field": "specifications.name",
"size": 20
},
"aggs": {
"value_counts": {
"terms": {
"field": "specifications.value",
"size": 10
}
}
}
}
}
}
}
}
|