无分类商品搜索引擎的性能优化 姚晓 计算机应用研究中心 2016.4.22
义乌购搜索引擎 义乌购(www.yiwugou.com)面向小商品批发业务的O2O平台 采用百度全文搜索技术开发的搜索引擎对无分类商品的查询效果很差
现状分析 5/20
搜索优化 搜索查准率 搜索效率
Stage1:商品像什么:相异数 64 32 衣服 其他词库 16 8 4 毛衣链 2 毛衣 1 首先介绍一下我们是怎样解决基本的查准问题的。义乌购商品的描述五花八门,有些商品光看描述根本不能分辨描述的到底是什么,因此仅靠商品title一个维度是不能准确地定位商品像什么,更别说是什么的问题。因此我们提出了“相异数”的概念,用于描述商品像什么的程度。计算方式是这样的,选取商品和商铺的主营商品进行分词,然后将其定位到分类词树上 毛衣
新搜索引擎 20/20
查准率优化 Stage2:商品是什么:商品描述模型
品牌词
附属词
查准率
搜索效率 超时问题:每天搜索量400万,超时2000条 原因:搜索结果排序 Solr内部排序(主要因素) Solr外部商业规则排序
查询效率优化
分布式索引 索引分片 V 1.0:索引分片方案,新商品建立索引时,基于一致性哈希原则定位其索引将要放置的分片位置;查询时,查询所有分片 存在问题:搜某些热词仍然会有超时发生,例如与关键词“鞋”相关的商品有比较多,其索引数据分布在多个索引分片上,查询时要查询所有分片,分片内搜索排序时间+合并并排序所有分片结果的时间远大于单节点搜索的时间,使得搜索效率更低
分布式索引 V 2.0: 按照市场区域进行商品索引的分片 分片原则: (1)根据流量比例和市场商品量的比例,确定每个市场的分片数和分片的副本数; (2)单个节点不能放置同一分片的多个副本; (3)各个分片总量差异保持最小,设置阀值,超过阀值进行继续切分,小于阀值则根据相关性进行合并。
分布式索引 构造热词表
分布式索引 请求发到Broker之后,首先查询热词表,如果被检索词存在热表中,则直接去相应的分片查询;如果不存在则查询所有的分片,并根据查询结果更新热词表。这样一来可以极大地减少单次查询的分片数量。
谢谢