GlobalYoho_product_search.md 6.21 KB

全球购Yoho商品搜索引擎融合方案

目前全球购和yoho商品在搜索引擎中的索引是不同的,分别是tplproduct 和productindex。由于productindex的字段远远多于tplproduct的字段,所以整个融合过程会分为几个阶段,循序渐进来完成2个商品共用一个索引。

  • 适配模式。通过开发适配器,把全球购的字段转化成yoho商品的字段,全球购商品更新到productindex中

Version

1.0.0

tplproduct字段定义

字段 说明
product_skn 商品skn
product_name 商品名称
source 商品来源
brand_id 品牌id
sort_one 一级品类id
sort_two 二级品类id
sort_three 三级品类id
sort_four 四级品类id
product_url 商品网址
site_id 网站id
is_limited 是否是限量商品
country_id 国家编码
gender 性别 1.男 2.女 3.通用
currency_id 货币id
tag_price 吊牌价
orign_price 销售价(计算汇率后的)
sell_price 最小销售价
goods_price 最小商品价格(计算汇率后的)
got_price 最小到手价
weight 重量
size_info 尺码
status 商品状态
url_status 爬虫状态 1.生效 2.失效
stock_status 库存状态 1.有 2.无
operate_userid 操作人id
order 排序序列
create_time 创建时间
update_time 更新时间
shelf_time 上架时间
offshelf_time 定时下架时间
auto_shelf 是否自动上架 1.自动 2.手动
color_ids skc颜色id组合 (1,2,3)
skc skc的集合
cover 商品封面图

productindex字段定义

字段 定义 NULL Key DEFAULT
id int(11) unsigned NO 0
product_id int(11) unsigned NO 0
shelve_time int(10) unsigned NO 0
shelve_day varchar(10) YES
cn_alphabet varchar(255) YES
product_name varchar(100) YES
brand_name_cn varchar(50) YES
brand_name_en varchar(100) YES
brand_keyword varchar(200) YES
hot_keyword varchar(100) YES
brand_name varchar(50) YES
brand_alif varchar(1) YES
style varchar(200) YES
sales_phrase varchar(100) YES
max_sort_id smallint(5) unsigned NO 0
max_sort_name varchar(42) YES
max_sort varchar(30) YES
middle_sort_id smallint(5) unsigned NO 0
middle_sort varchar(30) YES
middle_sort_name varchar(42) YES
small_sort_id smallint(5) unsigned NO 0
small_sort varchar(30) YES
small_sort_name varchar(42) YES
gender enum('1','2','3') YES
gender_s varchar(3) YES
brand_id smallint(5) unsigned NO 0
is_special enum('Y','N') YES N
status tinyint(4) NO 0
seasons_s int(0) YES
isspecial int(1) NO 0
is_hot enum('Y','N') YES N
folder_id int(11) YES 0
ishot int(1) NO 0
ispromotion smallint(6) NO 0
series_id int(11) unsigned NO 0
is_sales enum('Y','N') YES Y
issales int(1) NO 0
is_advance enum('Y','N') YES N
isadvance int(1) NO 0
is_auditing enum('Y','N') YES Y
isauditing int(1) NO 0
attribute tinyint(4) NO 0
seasons set('spring','summer','autumn','winter','seasons') YES
is_down enum('Y','N') YES N
isdown int(1) NO 0
isrecommend int(1) NO 0
is_outlets int(1) NO 0
first_shelve_time int(10) unsigned YES 0
sell_channels set('0','1','2','3','4','5','6','7','8','9') YES 0
product_skn int(11) unsigned NO
isnew varchar(1) NO
brand_domain varchar(50) YES
islimited varchar(1) NO
edit_time int(10) unsigned NO 0
special_price decimal(10,2) YES 0
market_price decimal(10,2) YES 0
vip_discount_type tinyint(4) YES 1
vip_price decimal(10,2) YES 0
vip1_price decimal(10,2) YES 0
vip2_price decimal(10,2) YES 0
vip3_price decimal(10,2) YES 0
sales_price decimal(10,2) YES 0
promotion_discount_int decimal(12,0) YES
promotion_discount decimal(13,3) YES
specialoffer varchar(1) NO
is_discount varchar(1) NO
product_keyword varchar(200) YES
color_ids longtext YES
color_names longtext YES
standard_ids longtext YES
standard_names longtext YES
standard_only_names longtext YES
sales_num decimal(33,0) YES
storage_num decimal(33,0) YES
is_soon_sold_out varchar(1) NO
is_sold_out varchar(1) NO
sold_out varchar(1) NO
size_ids longtext YES
style_ids longtext YES
goods_list mediumtext YES
default_images varchar(255) YES
activities mediumtext YES
sort_weight decimal(11,0) NO 0
brand_weight decimal(11,0) NO 0
yohood_id smallint(6) YES
base_pin_ratio double YES
breaking_rate double YES
discount_score double YES
pool_id longtext YES

适配器设计

1 全球购商品融合到productindex

(1)适配器通过调用全球购的url+key获取全球购商品,参考:

wget ${tbl.product.url}getproductscountforsearch?client_type=iphone&client_secret=xx

其中xx为客户端key,需要进行md5的转化,转化如下:

clientkey= MD5Util.string2MD5("client_type=iphone&private_key=" + ${tbl.product.private.key});
 ${tbl.product.url}:全球购url ,可以找周硕要
${tbl.product.private.key}:全球购产品密钥

(2)获取全球购产品后,需要参考yoho商品productindex 封装成商品list。

List<ProductIndex> globalProducts = ProductAdaprotr.changed(List<tplproduct>);

(3)搜索这边会每隔一段时间(默认间隔为1个小时)获取globalProducts,之后会进行product_index的更新,这样全球购商品就能在product_index里面搜索得到。

2 yoho部分商品(部分品牌下的商品)融合到全球购索引 商品适配模块需要支持逆向适配,其中: (1)部分brand品牌下的商品需要按照全球购的字段转成全球购商品列表。 可直接从yh_shops库product表中根据brand查到对应的product,然后按照全球购的字段转成全球购的商品列表

List<product> = XXservice.getProduct(String brandname);
List<tplproduct> yohoProducts = ProductAdaprotr.changedfromProductIndex(List<product>);

(2)全球购对着部分商品列表进行存储计算。 (3)搜索引擎会定时从全球购获取商品列表,并进行tplproduct更新的操作。