por 旭 王 hace 14 años
542
中期计划的目标更为明确、具体,指标和措施较为详尽。
提供底层支持
IShop
秘书工作台
网络商城
供货商
比价网站
测试报告搜索速度、切词准备度、应用Java的可行性工作量分析
http://blog.chenlb.com/2009/04/mmseg4j-max-word-segment-compare-with-paoding-in-effect.html
http://hi.baidu.com/lewutian/blog/item/0c117af8d0d92103d9f9fd9c.html
http://hi.baidu.com/lewutian/blog/item/d2d723b73e377cf831add19c.html
比例
范围
时间
非热闹商品
索引加标识字段
GoodsInfo表加标识字段
有互动
通过客户反馈信息进行处理。
测试数据准确
讯价的作用
得到商品实时的价格。
讯价的规则
1. 不讯价的情况
3小时内更新的热门商品
1天内更新的非热门商品
2. 自动讯价频率
热门商品2小时一次
热门商品2小时一次
讯价的方式
1. 考虑从购物车获得价格。购物车数据量最小,有可能需要通过Cookie传参数。
2. 与供货商建立合作关系,由供货商提供价格接口。
应用技术
缓存
性能考虑
Length为300万的HashTable会否有性能问题?
如果对性能影响较大,可以考虑的几种拆分方式:
按频道(操作简单,但图书频道还是很大)
按InfoCode区间(大小不统一,拆分碎片可能过多)
热门/非热门
占用空间
数据按300万计算:
商品InfoCodeList,占用17M左右。(InfoCode(6)*300万=17M)
商品价格,占用635M左右。
(provider(40)+providerName(16)+price(6)+updateTime(10))*3>
216*300万=635M
分类
商品价格数据
作用:存储商品在各供货商实时售价。
结构:HashTable(Key:InfoCode;Value:IList<ProviderPrice>)
商品InfoCode String[]
作用:维护全部商品InfoCode列表,自动讯价使用
结构:字符串数组。
服务(自动讯价)
热门商品2小时一次
热门商品2小时一次
多线程
线程池:讯价需要支持多并发。
现有数据结构修改
1. 增加热门商品记录字段。
GoodsInfo表加标识字段
索引加标识字段
2. 商品分类
热门商品
非热闹商品
接口定义
讯价取商品最低价
参数:InfoCode
返回:ProviderPrice
逻辑:
1. 接收InfoCode,判断是否讯价(通过UpdateTime)
2. 生成最低价供货商URL和参数
3. 抓取解析购物车HTML,取实时价格。
4. 更新数据(如果价格改变)
5. 返回ProviderPrice。
取多个商品价格(推荐商品)
参数:"InfoCode,InfoCode,InfoCode"
返回:HashTable(Key:InfoCode;Value:IList<ProviderPrice>)
指定商品在各供货商售价格比较
参数:InfoCode
返回:IList<ProviderPrice>
逻辑:
1. 接收InfoCode
2. 取缓存数据,判断是否讯价(通过UpdateTime)
3. 调用讯价方法(foreach供货商)
4. 更新数据(如果价格改变)
商品价格更新
参数:InfoCode, IList<ProviderPrice>
返回:更新结果(成功/失败)
逻辑:
1. 判断此次操作是 Insert还Update。新商品为Insert。
2. 更新内容包括:缓存、数据库、索引。
编辑热门商品状态
参数:InfoCode(可接收多个),状态(1表示热门商品 2表示非热门商品)
返回:更新结果(成功/失败)
逻辑:
1. 更新数据库中商品状态
2. 更新索引中商品状态
3. 更新两个缓存
实体类
ProviderPrice
属性 说明 类型
providerId 供货商Id Guid
providerName 供货商名称 String
price 价格 Double
updateTime 更新时间 DateTime
讯价按功能按供货商及频道进行分类,便于维护。
讯价无结果使用原价格
自动讯价频率
非热门商品1天一次
热门商品2小时一次
不讯价的情况
1天内更新的非热门商品
3小时内更新的热门商品
单个性能要优于多个
在讯价中取商品价格优先级高于取同类商品价格。
编辑热门商品
1.数据库
2.索引
3.两个缓存
商品价格更新
指定商品在各供货商售价格比较
1.接收InfoCode
2.取缓存数据,判断是否讯价(通过UpdateTime)
3.调用讯价方法(foreach供货商)
4.更新数据(如果价格改变)
取多个商品价格(推荐商品)
讯价取商品最低价
1.接收InfoCode,判断是否讯价(通过UpdateTime)
2.生成最低价供货商URL和参数
3.抓取解析购物车HTML,取实时价格。
4.更新数据(如果价格改变)
4.返回ProviderPrice。
最低供货商无货,返回第二低供货商价格。
票务
中国票务通
大麦网
酒店
机票
购物车页
维护计划
目录
便于查找、更新信息
分类:供货商、频道
这两个关键信息,提取单独处理模块。
行业前3
源码修改记录,记录在项目中。
辅助搜索字段
实时性
提供及时有效、有竞争力的价格。
解决方案:调用这个数据的时候要从来源的网站重新查询(询价)
搜索响应速度
数据更新的效率
解决方案:
索引更新方式采用定期重采供货商前10页数据数据,降低全站重采的效率浪费。
索引创建采用多线程。
已有供货商前10页热卖商品采集
与供货商同步
上下架
信息
价格
准确性
不能拿虚假的信息提供给客户
搜索的准确
解决方案:提高词库精度。定期确定数据完整性(是否已下架或已无此商品)
把相似度很高的数据进行整合,多个供货商商品服务合并。
解决方案:参考向量空间模型
讯价
半自动化
全面性
要给客户提供非常全面的信息
覆盖工作生活的方方面面。
解决方案:通过采集行业前三供货商的商品服务丰富我们的数据。
千万
集群
RAID
带宽
量化指标
需要公司支持
充分利用,减少闲置
预留时间来进行技术储备、组内测试
风险预留
不绝对,配合测试需要预留
前期为公司产品做支撑,后期会对外提供服务。
工作下达,上行。
沟通有效。
组内标准。
如何有效执行,保障手段是什么?
源码的管理制度
数据库文档的维护
数据库管理制度
权限,责任人、第二责任人
保证质量
互为责任人二
加快交接