当前课程知识点:微软亚洲研究院大数据系列讲座 >  第二讲:互联网搜索中的大数据研究(宋睿华) >  搜索引擎如何实现每秒数千次的查询(How does a web search engine process thousands of queries per second?) >  搜索引擎如何实现每秒数千次的查询(How does a web search engine process thousands of queries per second?)

返回《微软亚洲研究院大数据系列讲座》慕课在线视频课程列表

搜索引擎如何实现每秒数千次的查询(How does a web search engine process thousands of queries per second?)在线视频

搜索引擎如何实现每秒数千次的查询(How does a web search engine process thousands of queries per second?)

下一节:探寻搜索的多个维度(finding dimensions for queries)

返回《微软亚洲研究院大数据系列讲座》慕课在线视频列表

搜索引擎如何实现每秒数千次的查询(How does a web search engine process thousands of queries per second?)课程教案、知识点、字幕

在第二部分,我想来回答一个问题:

搜索引擎是怎么样在一秒钟之内处理数千次查询请求的?

这部分的内容来源于

史树明博士关于高性能互联网搜索架构的讲座。

让我们以谷歌为例。

在现实中,

一个商业搜索引擎包括

许多集群,每个集群都是一个完整的

大规模搜索引擎,会存储所有Web页面

并能够提处理各种查询请求。

当用户输入了一个查询时,

先由一个基于域名服务的负载均衡

系统分配至

一个集群。

分配时要同时考虑用户与物理集群的距离

和可用能力。

这些集群分布在世界各地,它们可能位于

不同的城市和不同的国家。

对于每个查询请求,只有一个

HTTP请求被发送到一个

集群上去。现在我们可以计算一下,

如果我们的目标是4,000次查询请求

每秒。哇!如此之多,但是我们有10个

集群,每个集群实际上需要

在每秒钟处理

400次查询请求。

让我们来看看当一个查询请求到来时,一个集群内部是什么样子的。

首先,基于硬件的负载均衡器会把这个查询请求分配给

某台Web服务器。

然后,每台Web服务器上都有

搜索引擎缓存。

如果这个查询请求之前被搜索和缓存过,

那么搜索引擎缓存将马上返回搜索结果。

因此,

我们的目标是每秒处理400次查询请求,

如果其中80%的查询请求

都使用缓存中的结果,那么我们只需要

在每秒钟处理80次查询请求就可以了。

另外,索引服务器也有很多副本,

所以假设每台索引服务器都有3个副本,

那么每台索引服务器

每秒只需要处理20次查询请求。

这张幻灯片展示的是谷歌的

查询服务器的架构。

因此,当一个查询请求到来时,谷歌的

Web服务器会把这个查询请求发送给

一些索引服务器并从索引服务器获得搜索结果列表。

如有需要访问文档信息,

那么索引服务器会把请求分配给

某个文档服务器并获得所需的文档。

搜索引擎还有一个称为拼写检查的模块,

这是因为在查询词中经常会存在一些原始错误。

如果这些原始错误能够被更正,那么搜索结果就会更好。

在索引服务器内部,

你们可以看到你们所熟知的倒排索引,

我们在第一部分介绍了倒排索引。

例如,让一个查询请求到来时,

查询请求包含t1和t2两个词,

这两个词汇被发送给索引服务器,

索引服务器会从倒排索引中

分别获取第一个词的倒序排列表

和第二个词的倒序排列表

然后某个模块会合并

这两个倒序排列表并

为每个文档计算一个相关性分数。

最后,搜索引擎返回得分最高的K个文档的文档ID。

现在,我们的目标是

让每个索引服务器在每秒钟

返回27次查询请求。

现在,这个数字并不是很大了。

非常幸运,我们还有一些

优化性能的方法。例如,我们

可以使用动态剪枝算法来计算得分

最高的K个文档。这就是说,我们不需要

对包含t1和t2的所有文档

进行全排序,我们只需要

得分最高的K个文档。通常来说,

K的取值是10。因此,这样我们

就可以做得更好了。

当我们为每个查询词加载到排表时,

我们能够计算倒序排列表的相交部分,

对每个文档进行评估并

根据相关性得分排序。

如果大家对这两个部分介绍的内容感兴趣的话,

这里有一个参考文献的列表。

大家可以阅读这4篇论文,它们都非常好。

微软亚洲研究院大数据系列讲座课程列表:

第一讲:大数据研究现状及未来趋势(洪小文)

-什么是大数据(What is big data?)

--什么是大数据(What is big data?)

-为什么大数据是当前热点(Why big data is a nature phenomenon?)

--为什么大数据是当前热点(Why big data is a nature phenomenon?)

-新的计算基础设施和工具(New Infrastructure and tools)

--新的计算基础设施和工具(New Infrastructure and tools)

-课程简介(Course Introduction)

--课程简介(Course Introduction)

-基础设施,机器学习和可视化(Infrastructure,Machine Learning and Visualization)

--基础设施,机器学习和可视化(Infrastructure,Machine Learning and Visualization)

-大数据与传统商业智能的区别(Big data:different from traditional BI)

--大数据与传统商业智能的区别(Big data:different from traditional BI)

-Quiz

--Quiz--作业

第二讲:互联网搜索中的大数据研究(宋睿华)

-大规模超文本网络搜索引擎的解析(the anatomy of a large scale hypertextual web search engine)

--大规模超文本网络搜索引擎的解析(the anatomy of a large scale hypertextual web search engine)

-搜索引擎如何实现每秒数千次的查询(How does a web search engine process thousands of queries per second?)

--搜索引擎如何实现每秒数千次的查询(How does a web search engine process thousands of queries per second?)

-探寻搜索的多个维度(finding dimensions for queries)

--探寻搜索的多个维度(finding dimensions for queries)

-Quiz

--Quiz--作业

第三讲:社会计算中的大数据研究(谢幸)

-背景介绍(background)

--背景介绍(background)

-用户移动规律的理解-1(user mobility understanding-1)

--用户移动规律的理解-1(user mobility understanding-1)

-用户移动规律的理解-2(user mobility understanding-2)

--用户移动规律的理解-2(user mobility understanding-2)

-用户画像与个人隐私-1(user profiling and privacy-1)

--用户画像与个人隐私-1(user profiling and privacy-1)

-用户画像与个人隐私-2(user profiling and privacy-2)

--用户画像与个人隐私-2(user profiling and privacy-2)

-Quiz

--Quiz--作业

第四讲:城市计算中的大数据研究(上)(郑宇)

-城市计算中的大数据研究简介(introduction to urban big data)

--城市计算中的大数据研究简介(introduction to urban big data)

-概念,框架和挑战(concepts,framework and chanlleges)

--概念,框架和挑战(concepts,framework and chanlleges)

-基础技术(fundamental techniques)

--基础技术(fundamental techniques)

-城市规划(urban planning)

--城市规划(urban planning)

第四讲:城市计算中的大数据研究(下)(郑宇)

-识别特定区域(indentify functional regions)

--识别特定区域(indentify functional regions)

-城市空气质量与大数据研究(urban air quality meets big data)

--城市空气质量与大数据研究(urban air quality meets big data)

-能源交通和环境污染(traffic energy and pollution)

--能源交通和环境污染(traffic energy and pollution)

-大数据在城市噪音处理中的应用(diagnose urban noise with big data)

--大数据在城市噪音处理中的应用(diagnose urban noise with big data)

-Quiz

--Quiz--作业

第五讲:软件分析中的大数据研究(张洪宇)

-软件分析的概念(the concepts of software analytics)

--软件分析的概念(the concepts of software analytics)

-软件分析的实例(examples of software analytics)

--软件分析的实例(examples of software analytics)

第六讲:大数据分析可视化研究(刘世霞)

-传统的数据可视化(Traditional information visualization)

--传统的数据可视化(traditional information visualization)

-同质数据的可视化分析-1(Visual Analytics of Homogeneous Data-1)

--同质数据的可视化分析-1(Visual Analytics of Homogeneous Data-1)

-同质数据的可视化分析-2(Visual Analytics of Homogeneous Data-2)

--同质数据的可视化分析-2(Visual Analytics of Homogeneous Data-2)

-异质数据的可视化分析(Visual Analytics of Heterogeneous Data)

--异质数据的可视化分析(Visual Analytics of Heterogeneous Data)

-Quiz

--Quiz--作业

搜索引擎如何实现每秒数千次的查询(How does a web search engine process thousands of queries per second?)笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。