欢迎来到天天文库
浏览记录
ID:4254049
大小:209.25 KB
页数:4页
时间:2017-11-30
《电商搜索引擎的架构设计和性能优化》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、-------------------------------------------------------------------云客网您网站的流量加油站电商搜索引擎的架构设计和性能优化电商搜索引擎的特点众所周知,标准的搜索引擎主要分成三个大的部分,第一步是爬虫系统,第二步是数据分析,第三步才是检索结果。首先,电商的搜索引擎并没有爬虫系统,因为所有的数据都是结构化的,一般都是微软的数据库或者Oracle的数据库,所以不用像百度一样用「爬虫」去不断去别的网站找内容,当然,电商其实也有自己的「爬虫」系统,一般都是抓取友商的价格,再对自己进行调整。第二点,就是电商搜索引擎的过滤功能其
2、实比搜索功能要常用。甚至大于搜索本身。什么是过滤功能?一般我们网站买东西的时候,搜了一个关健词,比如尿不湿,然后所有相关品牌或者其他分类的选择就会呈现在我们面前。对百度而言,搜什么词就是什么词,如果是新闻的话,可能在时间上会有一个过滤的选项。第三点,电商搜索引擎支持各种维度的排序,包括支持好评、销量、评论、价格等属性的排序。而且对数据的实时性的要求非常高。对一般的搜索引擎,只有非常重要的网站,比如一些重量级的门户网站,百度的收录是非常快的,但是对那些流量很小的网站,可能一个月才会爬一次。电商搜索对数据的实时性要求主要体现在价格和库存两个方面。电商搜索引擎另一个特点就是不能丢品,比如
3、我们在淘宝、天猫开了个店铺,然后好不容易搞了一次活动,但是却搜不到了,这是无法忍受的。除此之外,电商搜索引擎与推荐系统和广告系统是相互融合的,因为搜素引擎对流量的贡献是最大的,所以大家都希望把广告系统能跟其融合。当然,还有一点非常重要,就是要保证绝对的高可用,而且不能宕机。电商搜索引擎的架构因为电商搜索引跟一般的搜索引擎区别很大,所以在架构的设计上也独具特色。首先,搜索引擎的实现方式有很多种,有谷歌、百度、搜狗这种非常大的公司,也有京东、淘宝、当当这样的电商搜索引擎,很多中小型的电商可能更喜欢用一个开源的搜索引擎。所以总的来说,主要包括以下这几种方式:SEO排名http://www
4、.yuntask.com/-------------------------------------------------------------------云客网您网站的流量加油站第一种是「Lucene+自己封装」,只用来做检索,然后封装,后面所有的ES,这两个是完整的解决方案,而且包括索引所有的东西,只需要部署好业务逻辑,然后查找结果就可以了。第二种就是Solr,这是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一
5、款非常优秀的全文搜索引擎。第三种是ElasticSearch,这是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTfulweb接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,目前使用的也非常多。这里提一下,当当的搜索引擎是自己实现的,。现在,新兴的互联网公司大部分都是使用第一种或者第二种,数据量比较大的一般采用第三种。电商搜索引擎标配模块SEO排名http://www.yuntask.com/---------------------------------------------------
6、----------------云客网您网站的流量加油站接下来我想讲一下,如果我们自己做一个搜索引擎的话需要实现哪些功能(上图是电商搜索引擎的标准模块),其实不止是电商搜索引擎,除了通搜的搜索引擎,其他的搜索引擎也是使用这样的标配。SEO排名http://www.yuntask.com/-------------------------------------------------------------------云客网您网站的流量加油站对检索模块而言,首先是对用户的意图进行分析,根据用户的搜索词来进行纯算法的实现。比如用户的搜索词是「黑包包」,其实用户的本意就是买一个黑色的包
7、,但是这个「包」可以跟别的词组合在一起,甚至在搜索结果中会出现「包子」。所以,这就需要query分析系统来做,告诉检索系统,你需要主要在服装鞋帽中的分类去找,而不是生鲜食品类。设计到技术层面,当当网使用的是C++。如果构建一个性能好的系统,一些老一点的公司,大家都是在使用C++或者是C语言。不止是当当网,其实很多公司都是使用的C或者C++实现的搜索引擎。数据更新模块第二个模块就是数据更新模块,该模块负责生成索引。而数据中心模块主要做的事情,就是将原始的结构化数据,变成
此文档下载收益归作者所有