Google搜索引擎的工作原理研究

合集下载

搜索引擎工作原理

搜索引擎工作原理

一、搜索引擎引题搜索引擎是什么?这里有个概念需要提一下。

信息检索(Information Retrieval 简称IR) 和搜索(Search) 是有区别的,信息检索是一门学科,研究信息的获取、表示、存储、组织和访问,而搜索只是信息检索的一个分支,其他的如问答系统、信息抽取、信息过滤也可以是信息检索。

本文要讲的搜索引擎,是通常意义上的全文搜索引擎、垂直搜索引擎的普遍原理,比如Google、Baidu,天猫搜索商品、口碑搜索美食、飞猪搜索酒店等。

Lucene 是非常出名且高效的全文检索工具包,ES 和Solr 底层都是使用的Lucene,本文的大部分原理和算法都会以Lucene 来举例介绍。

为什么需要搜索引擎?看一个实际的例子:如何从一个亿级数据的商品表里,寻找名字含“秋裤”的商品。

使用SQL Likeselect * from item where name like '%秋裤%'如上,大家第一能想到的实现是用like,但这无法使用上索引,会在大量数据集上做一次遍历操作,查询会非常的慢。

有没有更简单的方法呢,可能会说能不能加个秋裤的分类或者标签,很好,那如果新增一个商品品类怎么办呢?要加无数个分类和标签吗?如何能更简单高效的处理全文检索呢?使用搜索引擎答案是搜索,会事先build 一个倒排索引,通过词法语法分析、分词、构建词典、构建倒排表、压缩优化等操作构建一个索引,查询时通过词典能快速拿到结果。

这既能解决全文检索的问题,又能解决了SQL查询速度慢的问题。

那么,淘宝是如何在1毫秒从上亿个商品找到上千种秋裤的呢,谷歌如何在1毫秒从万亿个网页中找寻到与你关键字匹配的几十万个网页,如此大的数据量是怎么做到毫秒返回的。

二、搜索引擎是怎么做的?Part1. 分词分词就是对一段文本,通过规则或者算法分出多个词,每个词作为搜索的最细粒度一个个单字或者单词。

只有分词后有这个词,搜索才能搜到,分词的正确性非常重要。

搜索引擎工作原理

搜索引擎工作原理

• Java 由sun公司开发的常用于计算机web 平台开发的程序设计语言,应用于网页动 态开发的文件后缀名是xxx.jsp。Java SE允 许开发和部署在桌面、服务器、嵌入式环 境和实时环境中使用 java语言。所以我们 经常会看到java用语手机等嵌入式平台。
• 优化网站,让搜索引擎蜘蛛(spider)更好的阅 读和抓取,这是SEO的本质。如果你的网站导航 或文字内容是框架(Frames),图片, JavaScript或Flash,则搜索引擎蜘蛛将不能全部 或部分抓取你的站点内容。 所以说我们说框架 网页,图片,JS,flash都是不利于SEO的因素。
垂直搜索
• 垂直搜索是针对某一个行业的专业搜索引 擎,是搜索引擎的细分和延伸,是对网页 库中的某类专门的信息进行一次整合,定 向分字段抽取出需要的数据进行处理后再 以某种形式返回给用户。如 “新浪爱问”, “有道博客搜索”,“MP3搜索”, “搜搜新闻搜索”等
搜索引擎的组成部分
• 搜索引擎一般由搜索器、索引器、检索pter)其功能是在互
目标索引
• 目录索引虽然有搜索功能,但在严格意义 上算不上是真正的搜索引擎,仅仅是按目 录分类的网站链接列表而已。用户完全可 以不用进行关键词(Keywords)查询,仅 靠分类目录也可找到需要的信息。目录索 引中最具代表性的莫过于大名鼎鼎的Yahoo 雅虎。其他著名的还有Open Directory Project(DMOZ)、LookSmart、About等。 国内的搜狐、新浪、网易搜索也都属于这 一类。
• Html 超文本标记语言 是最原始的网页语言也 是构成网页文档的最主要的语言,也是相对搜索 引擎最友好的语言。 • ASP 动态服务器页面 这是微软公司开发的常 用与网站动态程序开发的语言,也是最早的动态 网页语言。对搜索引擎是比较友好的。 • PHP HTML 内嵌式的语言,是一种在服务器端 执行的嵌入HTML文档的脚本语言,相对于其他动 态网页程序语言,php由于是将程序嵌入到html 里面执行,所以运行更快速。 • 微软公司开发的服务器端应用程序的 语言,开发源于ASP语言,可以理解为ASP语言 的升级版本 ,发展的时间并不长,但是搜索引擎 已经习惯了对网页文件的抓取。

搜索引擎

搜索引擎

什么是搜索引擎?搜索引擎(search engine)是指根据一定的策略、运用特定的计算机程序搜集互联网上的信息,在对信息进行组织和处理后,并将处理后的信息显示给用户,是为用户提供检索服务的系统。

搜索引擎的原理:第一步:从互联网上搜集信息网络蜘蛛Spider,是一个很形象的名字。

把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛。

网络蜘蛛是通过网页的链接地址来寻找网页,从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止。

第二步:整理信息、建立索引数据库由分析索引系统程序对收集回来的网页进行分析,提取相关网页所在网址链接、编码类型、页面内容包含的关键词、关键词位置、生成时间、大小、与其它网页的链接关系等信息,根据一定的相关度算法进行大量复杂计算,得到每一个网页针对页面内容中及超链中每一个关键词的相关度(或重要性),然后用这些相关信息建立网页索引数据库。

第三步:在索引数据库中搜索排序、接受查询当用户输入关键词搜索后,由搜索系统程序从网页索引数据库中找到符合该关键词的所有相关网页。

因为所有相关网页针对该关键词的相关度早已算好,所以只需按照现成的相关度数值排序,相关度越高,排名越靠前。

最后,由页面生成系统将搜索结果的链接地址、页面内容摘要等内容,组织起来返回给用户。

网络蜘蛛(spider)一般按照各搜索引擎的周期不同,可能是几天、几周或几月,也可能对不同重要性的网页有不同的更新频率,要定期重新访问所有网页,更新网页索引数据库,以反映出网页内容的更新情况,增加新的网页信息,去除死链接,并根据网页内容和链接关系的变化重新排序。

这样,网页的具体内容和变化情况就会以更新的形态,反映到用户搜索查询的结果中。

搜索引擎的种类:搜索引擎按其工作方式主要可分为三种,分别是全文搜索引擎(Full Text Search Engine)、目录索引类搜索引擎(SearchIndex/Directory)和元搜索引擎(Meta Search Engine)。

谷歌的工作原理

谷歌的工作原理
2
Google工作原理实例演示( Google工作原理实例演示(一) 工作原理实例演示
网页标题 和连接数 据存在一 个索引 中,用于 宽泛竞争 激烈的 搜索 网页内容 存在另外 一个索引 中,用于 不常见或 长尾关键 字的搜索 你写了篇博客,发了个评论,对 网站进行了更新或者添 加内容到网上 Google网络蜘蛛跟随连接进行爬取, 如果你的网站没有外链,那么你的 网站不会进行常规和深度爬取 如果你通过robot.txt告诉Google别 爬取的网站,Google将不会爬取 如果到你网站的外链有nofollow标签, Google不会通过这些连接爬取你的 网站 Google还可以通过博客的ping命令或者 Xml sitemap来找到你的网站 一旦爬取后,页面会在几秒内被 索引 从高权威性的网站获得越多外链, 则这些网页获得越高的权威性 当你通过Google搜索时,不是搜索实现的 网络,而是搜索Google的不断更新的 爬取没有nofollow标签的连接
8
谢谢您的收看 播放结束
由于本人水平十分的有限和时间的仓促, 谷歌搜索引擎内幕的具体技术细节: Google的页面级别( Google的页面级别(PageRank), Google Update 和 Dance的排名算法规则等 Dance的排名算法规则等 没有详细的介绍。 欢迎您提出宝贵意见,非常乐意与您进行 交流和学习。
显示不带广告的搜索结果 如果同一个域名返回多个高排名的结果, 会被整合在一起显示给用户
7
Google工作原理实例演示( Google工作原理实例演示(六) 工作原理实例演示
显示不带广告的搜索结果
其他的广告显示在右侧
生成用户看到的搜索结果页面, 所有的这一切都在一秒内完成, 每天搜索超过3亿次, 每年为Google产生200亿美元的收入

搜索引擎工作原理三个阶段简介

搜索引擎工作原理三个阶段简介

SEO实战密码:搜索引擎工作原理三个阶段简介搜索引擎工作过程非常复杂,接下来的几节我们简单介绍搜索引擎是怎样实现网页排名的。

这里介绍的内容相对于真正的搜索引擎技术来说只是皮毛,不过对SEO人员已经足够用了。

搜索引擎的工作过程大体上可以分成三个阶段。

(1)爬行和抓取:搜索引擎蜘蛛通过跟踪链接访问网页,获得页面HTML代码存入数据库。

(2)预处理:索引程序对抓取来的页面数据进行文字提取、中文分词、索引等处理,以备排名程序调用。

(3)排名:用户输入关键词后,排名程序调用索引库数据,计算相关性,然后按一定格式生成搜索结果页面。

爬行和抓取爬行和抓取是搜索引擎工作的第一步,完成数据收集的任务。

1.蜘蛛搜索引擎用来爬行和访问页面的程序被称为蜘蛛(spider),也称为机器人(bot)。

搜索引擎蜘蛛访问网站页面时类似于普通用户使用的浏览器。

蜘蛛程序发出页面访问请求后,服务器返回HTML代码,蜘蛛程序把收到的代码存入原始页面数据库。

搜索引擎为了提高爬行和抓取速度,都使用多个蜘蛛并发分布爬行。

蜘蛛访问任何一个网站时,都会先访问网站根目录下的robots.txt文件。

如果robots.txt文件禁止搜索引擎抓取某些文件或目录,蜘蛛将遵守协议,不抓取被禁止的网址。

和浏览器一样,搜索引擎蜘蛛也有标明自己身份的代理名称,站长可以在日志文件中看到搜索引擎的特定代理名称,从而辨识搜索引擎蜘蛛。

下面列出常见的搜索引擎蜘蛛名称:· Baiduspider+(+/search/spider.htm)百度蜘蛛· Mozilla/5.0 (compatible; Yahoo! Slurp China;/help.html)雅虎中国蜘蛛· Mozilla/5.0 (compatible; Yahoo! Slurp/3.0;/help/us/ysearch/slurp)英文雅虎蜘蛛· Mozilla/5.0 (compatible; Googlebot/2.1; +/bot.html)Google蜘蛛· msnbot/1.1 (+/msnbot.htm)微软 Bing蜘蛛· Sogou+web+robot+(+/docs/help/webmasters.htm#07)搜狗蜘蛛· Sosospider+(+/webspider.htm)搜搜蜘蛛· Mozilla/5.0 (compatible; YodaoBot/1.0;/help/webmaster/spider/; )有道蜘蛛2.跟踪链接为了抓取网上尽量多的页面,搜索引擎蜘蛛会跟踪页面上的链接,从一个页面爬到下一个页面,就好像蜘蛛在蜘蛛网上爬行那样,这也就是搜索引擎蜘蛛这个名称的由来。

Google搜索引擎架构研究

Google搜索引擎架构研究

Google搜索引擎架构研究【摘要】 google做为世界上最成功的网络公司之一,以其巨大,快速的搜索引擎而著名。

但很少有人了解能了解如何将数万台pc组织成为一个强大的,可靠的,可扩展的分布式系统。

本文简要介绍的google的主要后台架构gfs,mapreduce和bigtable。

【关键词】 google gfs mapreduce bigtable1 google要解决的问题(1)web是非常巨大的,并且以指数级别在增长。

(2)web中存在不同形式的资源:word,html,pdf,ascii,images(3)检索时间要极短不能让用户等待。

(4)各种民族各种语言不同,需要不同的分词方法。

(5)系统能够每天承受每天上亿次的检索。

(6)优化结果的排序规则,把用户最需要的信息展现在最前面。

2 google的分布式设计结构google的分布式设计是一项伟大的设计,它建立在上万台计算机上。

面的上万台的复杂系统结构google在设计系统的开始就有一个假设:“机器是会出问题的。

”“容许机器出问题,但机器必需自动跳过或自动修复这些问题。

”如图1所示,是一张google分布式设计的基本结构图。

2.1 抓取部分url server:存储url列表,这些url都是将要被抓取的对象。

crawler:一组进行并行检索的爬虫程序,每个爬虫都有自己的dns缓冲池,并且能够在同一时间打开300个网络连接。

store server:压缩并且存储爬虫爬取来的网易。

repository:包含每个网页的全部信息,每个文档都被标记为docid,length,url。

indexer:解压缩文档并且解析每个文档,并把其中的连接存储在anchors中。

anchors:专门存储解析而来的新的连接。

url resolver:把相对路径url转换为绝对路径的url。

其中,repository是压缩存储的,压缩率一般超过60%。

2.2 索引部分url resover:将绝对路径的url映射为docid并且存储在doc index中,将anchor text存储到barrels。

搜索引擎分类与工作原理

搜索引擎分类与工作原理

搜索引擎分类与工作原理搜索引擎是一种用于从互联网上收集信息并按相关性进行排序的软件工具。

根据不同的分类标准,搜索引擎可以分为多种类型,例如传统搜索引擎、垂直搜索引擎和元搜索引擎。

传统搜索引擎是指最常见的搜索引擎,如Google、Bing和Yahoo等。

它们的工作原理可以总结为三个主要步骤:1. 爬取和索引网页:搜索引擎会使用称为“爬虫”或“蜘蛛”的程序在互联网上爬取网页。

爬虫会按照设定的规则和算法逐个访问网页,并将其内容保存在搜索引擎的数据库中,以便后续的搜索和排序。

2. 建立倒排索引:搜索引擎会对爬取的网页内容进行处理,将关键词和对应的网页链接建立倒排索引。

倒排索引是一种数据结构,它将每个关键词和包含该关键词的网页链接关联起来,以便在用户进行搜索时能快速地找到相关网页。

3. 排名和排序:在用户输入搜索关键词后,搜索引擎会根据事先设定的算法对倒排索引中的网页进行排序,并将最相关的网页排在前面展示给用户。

搜索引擎的排序算法考虑了很多因素,包括关键词出现频率、网页质量、外部链接等。

垂直搜索引擎是专门针对某个特定领域或主题进行搜索和排序的搜索引擎。

它们的工作原理与传统搜索引擎类似,但爬取和索引的网页通常是特定领域相关的网页,使得搜索结果更加精确和专业。

元搜索引擎是一种同时使用多个不同搜索引擎的搜索工具。

它的工作原理是将用户的搜索请求发送给多个搜索引擎,并将它们的搜索结果进行整合和排序后展示给用户。

这种方式可以提供更全面和多样化的搜索结果,但也会增加搜索的时间和计算开销。

综上所述,搜索引擎根据分类标准的不同可以分为传统搜索引擎、垂直搜索引擎和元搜索引擎。

它们的工作原理都是通过爬取、索引和排序网页来提供相关的搜索结果。

每种搜索引擎都有其特点和应用场景,用户可以根据自己的需求选择适合的搜索引擎来获取所需的信息。

搜索引擎的工作原理及应用

搜索引擎的工作原理及应用

搜索引擎的工作原理及应用一、搜索引擎的概念搜索引擎是一种用于查找互联网中特定信息的工具。

它通过在庞大的互联网上索引和检索网页,帮助用户快速找到他们需要的信息。

二、搜索引擎的工作原理搜索引擎的工作原理可以分为五个主要步骤:1. 网页抓取(Crawling)搜索引擎首先会使用爬虫程序(Spider)在互联网上抓取网页。

爬虫会从一个初始的URL(统一资源定位符)开始,然后按照网页上的链接逐步爬取更多的网页。

抓取的网页会被存储在搜索引擎的数据库中。

2. 网页索引(Indexing)搜索引擎会对抓取的网页进行索引,以方便后续的检索。

索引是一个类似于图书馆目录的数据库,它记录了每个网页的关键词、标题、摘要和链接等信息,以及网页的其他特征。

通过索引,搜索引擎可以快速地找到相关网页。

3. 查询解析(Query Parsing)当用户输入一个查询词(关键词)时,搜索引擎会对查询词进行解析和处理。

它会去除无关词(如“的”、“是”等),将查询词转化成合适的搜索语法,并根据用户的搜索历史或地理位置等信息进行个性化的推荐。

4. 检索与排序(Retrieval and Ranking)搜索引擎会根据索引中的关键词匹配算法检索出与查询词相关的网页。

它会考虑网页的关键词密度、标题和摘要的相关性,以及其他评估指标,为搜索结果排序。

搜索引擎一般会返回最相关和最高质量的网页作为搜索结果。

5. 结果展示(Result Display)最后,搜索引擎会将排序好的搜索结果呈现给用户。

通常会显示网页的标题、摘要和链接,以及其他与用户查询相关的信息,如图片和视频等。

三、搜索引擎的应用1. 网页搜索搜索引擎最常见的应用就是用于在互联网上搜索特定内容。

用户可以通过输入关键词快速找到相关的网页、新闻、博客、研究论文等。

2. 学术研究学术搜索引擎是专门用于查找学术论文、研究成果和学术资源的工具。

例如,Google学术可以搜索包含特定关键词的学术文章,并提供相关的引用和学术影响力评估。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

呈现给我们一幅由Jess Bachman(在工作)精心描绘的示意图,这张流程图展示了每天拥有3亿次点击量的Google搜索按钮背后搜索引擎在那不到1秒的响应时间内所进行的处理。

这是我刚付印的最新示意图,这张流程图演示了在你点击Google搜索按钮后,在Google 返回查询结果前那一眨眼的功夫里,Google是如何处理你的搜索请求的?这可是搜索巨人Google年赢利额高达200亿美元的杀手级应用,也是Internet首屈一指的商业和技术神话,大家肯定都想知道Google这棵摇钱树背后的秘密。

一、Google官方对其搜索技术的叙述
我们搜索技术的后端软件会在服务器侧触发一系列执行时间不到1秒的并行计算,Google问世前的传统搜索引擎的搜索结果严重依赖于关键词在页面上出现的频度,我们使用了200多个指标信号(其中包括我们拥有专利的PageRank页面等级加权算法)用来检查万维网的链接结构(佩奇和布林最初的想法是把万维网的链接结构用图论的有向无环图来建模)并决定网页的重要程度,我们假定一个网页的重要程度取决于别的页面对它的引用,就像学术论文中的引用指数一样,重要的论文总是会被很多其他论文引用。

然后我们再根据搜索条件进行超文本匹配分析(对bot抓取的页面内容进行关键词倒排索引检索)确定跟搜索请求最相关的网页。

综合最重要的网页和跟搜索请求最相关的网页两个方面,我们就能按重要程度和用户搜索请求相关程度把查询结果排序后呈现给我们的用户。

二、数据中心:Google用来索引世界的塔
Google的数据中心高度机密,我们能了解到的不多:
1.在美国本土有19个以上的数据中心,其余17个数据中心分布在美国以外的世界各地。

2.每个数据中心有50万平方英尺那么大,建造一个数据中心要花费约6亿美元。

3. Google数据中心是世界上最高效的设施之一,而且也非常环保,几乎没有碳排放。

4.数据中心使用50到100兆瓦的电力,由于需要冷却,通常建在便于用水的地方。

5. Google服务器安置在一个一组容得下1160台服务器的有房子那么大的标准集装箱容器中。

三、处理流程:
1.你写博客、或在Twitter上推微博、更新站点等诸如此类往web上添加内容的操作
2. Google爬虫(一种作为搜索引擎构件的智能代理程序)抓取你网页的title和description、keyword等内容。

(1) Google bots程序沿链接路径周游万维网,如果没有http路径到你的站点,你的站点将不会被索引。

(2)如果你在robots.txt中设置不许索引,Google bots程序将不会抓取你的网页。

(3)如果链接到你站点的html链接上有nofollow标签,Google bots将不会从这些链接路径周游到你的站点。

(4) Google也能通过blog软件或xml站点地图找到你的网站。

(5)从PageRank越高的网站链接到你的网站的链接越多,你的网站的PageRank就越高。

(6) Google爬虫将周游所有未标注为nofollow的链接。

3.一旦被Google爬虫访问到,网页几秒内就被索引了
(1)网页内容被存储在一个倒排索引中。

①网页标题和链接数据被保存在一个索引中,用于广度优先搜索。

②网页内容保存在另一个索引中,以用于检索频率不高的长尾、个性化、深度优先搜索。

(2)当你用Google搜索时,你并没有在检索时时更新的万维网,而是在检索Google的缓存,Google定期更新其索引库,在Twitter实时搜索等的竞争下,Google的索引库更新周期趋短。

4. Google基于链接评估域名和网页的总体PageRank值。

5.检查网页以防止作弊行为
(1) Google的搜索质量和反垃圾信息审查和优化算法。

(2) 1万多远程测试用户评价搜索结果的质量。

(3) Google征请用户对有PageRank讹诈嫌疑的垃圾信息进行举报。

(4) Google接到(美国)数字千年版权法案的通知,要求Google把盗版行为记录备案。

6.在对页面做了损害分析后,现在每个页面都有很多用于辅助用户搜索的数据片(比如检索关键词)反向引用着它。

7.用户发出搜索请求
(1)Google搜索质量工程师Patrick Riley:在大多数Google搜索中,你的搜索处于许多并行的控制过程或Google实验室的创新项目组过程中,可以说每一个查询请求都会参与一些Google的创意实验。

8. Google会用同义词匹配与你的搜索关键词语义相近的查询结果。

9.生成初步的查询结果。

(1)也许Google宣言能返回成千上万数量无限的查询结果,但一般只显示不到1000条的查询结果,出于“少则得,多则惑”的考虑。

(2)对查询结果做本地化处理,本土站点在查询结果中优先出现。

10.对查询结果集按权威性和PageRank进行排序,重复的查询结果被剔除。

(1) Google根据关键词、广告类型、用户所处位置找出相关的被竞价拍卖的关键词广告。

(2)关键词广告必须遵守当地法律条文。

①广告业主的非法广告将被取缔
②如果关键词的搜索流量过低或关键词广告点击量偏低,则会被自动禁用。

③出于商业策略,像亚马逊这样的客户会给予优惠折扣。

(3)关键词相关广告按收益潜力(对关键词进行竞价拍卖后的广告质量不断进行评估)排序。

(4)对广告业主来说广告内容一般都是固定的,但有时使用动态关键词使关键词广告与搜索关键词相关度更高。

①一些广告本身允许增加易变的附属信息,比如网站链接、电话号码、产品链接、地址等。

(5)当广告拥有了相当高的点击率,则会显示在搜索结果列表的上方,以使其更显眼。

(6)其余的广告依序显示在相应的位置。

11.对查询结果进行过滤处理
(1)对通常的查询(比如在Google首页上发出的搜索请求),Google会把相关的专题性垂直搜索结果(比如新闻、购物、视频、书籍、地图等)也加到返回的查询结果中。

(2)个性化方面:用户访问过的网站在查询结果列表中会更靠上。

(3)大量使用锚点的网站有可能被从查询结果中删除。

(4)搜索结果集的聚簇性:如果网页被其他高PageRank的网站引用,则网页的重要性会大大提高。

(5)趋势分析:对搜索流量爆增或有大量新闻的搜索关键词,Google会在新的查询结果中增加额外的PageRank权值。

(Google有反映关键词搜索流量的Google趋势专题页面)
(6)同一个域名下的多个网页如果具有相同的PageRank会被归为一组。

12.最终返回给浏览器端的用户一个人性化的、布局良好的、查询结果和广告泾渭分明的有机查询结果页面。

所有这些步骤在总共不到1秒的响应时间内完成,每天3亿次的点击量给Google带来了超过200亿美元的年收入。

(编选:中国电子商务研究中心勇全)。

相关文档
最新文档