【原创】网易搜索引擎架构讲座笔记
12月27号,网易搜索引擎“有道”的架构师周枫来我们学校做了一次关于网易搜索引擎架构的讲座,我去听了,记录下来一些我认为有用的信息。
搜索服务质量的四个维度:时效性,完备性,相关性和呈现形式。
采用分布式的架构,查询分发与结果聚合。
基础设施
分布式文件系统自动复制数据,在软件层次解决硬件可用性问题。分布式计算系统自动划分和重试任务。
抓取
抓取的首要问题是调度。抓取礼貌性和带宽利用率,最终的目的是提高整个网页库的质量。
链接分析:分布式的根据链接关系进行静态评分。重复或近似重复页面检测。使用Shingles方法,去除大约40%-50%的页面。
垃圾网页(SPAM)检测和处理,自动分类和手工封禁相结合。
前台
目标:在满足响应速率要求的前提下,尽量提高吞吐率。300ms是响应时间的临界值。将索引库分配到足够多的服务器上,缓存查询结果。索引所占空间大小对于性能影响很大。压缩索引->性能提高。可以将倒排索引压缩20%-30%。
搜索引擎查询的三类:导航类(20%-40%),信息类和交易类。
博客搜索
问题定义:通过关键词查询搜索博客文章,以及博客站点和blogger。主要基于抓取和RSS Feed(包括Atom等)。
强调对博客信息的分析。
如何查找指向某个博客的所有链接:
使用流-排序分布式计算模型(Stream Sort Model),使用多台互相通信的机器
1.按机器平均分配所有边
2.读入所有边,按v2划分发送到相应机器
3.每台机器将所有接收到的边按v2排序
4.排序结果中相邻有相同v2的边是指向v2的所有边
网络释义
把搜索和辞典结合起来。
假设:在网络中,很近距离同时出现的中外文词很有可能互为解释关系。如果同对中外文词在不同网页中出现很多次,则是正确解释关系的可能性就很大。
抽取,归一化(忽略大小写等),统计出现次数,输出超过一定次数的对