【技术课堂1】搜索引擎技术原理~╰_╯

一、Web搜索引擎技术综述

二、Google技术

三、百度技术

四、结束语

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

一、             Web搜索引擎技术综述

(一) 、引子

随着网络技术的应用与发展,互连网已经成为信息的重要来源地。搜索引擎以一定的策略在互联网中搜集、发现信息,对信息进行理解、提取、组织和处理,并为用户提供检索服务,从而起到信息导航的目的,互联网用户使用网络获取信息过程中,搜索引擎也成为必不可少的工具。调查表明,当前的所有互连网应用中,网络信息搜索是仅次于电子邮件的第二大应用,而这些搜索绝大多数是专门的,高度复杂的搜索引擎实现的。

按照信息搜集方法和服务提供方式的不同,搜索引擎系统可以分为三大类:

①              目录式搜索引擎,以人工方式或半自动方式搜集信息,由编辑员查看信息之后,人工形成信息摘要,并将信息置于事先确定的分类框架中,由于web信息的海量性和人工处理能力、经济代价的限制,这类搜索引擎信息的即时性和全面性难以保证它的优秀代表是Yahoo等;

②              机器人搜索引擎,由一个称为蜘蛛(Spider)的机器人程序以某种策略自动地在互联网中搜集和发现信息,由索引器为搜集到的信息建立索引,由检索器根据用户的查询输入检索索引库,并将查询结果返回给用户,这类搜索引擎实现较为复杂,但能很好的实现信息的全面获取和即时更新,它的优秀代表是Google等,后文如非特别说明,都指这类搜索引擎;

③              元搜索引擎,这类搜索引擎没有自己的数据,而是将用户的查询请求同时向多个搜索引擎递交,将返回的结果进行重复排除、重新排序等处理后,作为自己的结果返回给用户,这类搜索引擎兼集多个搜索引擎的信息,并且加入新的排序和信息过滤,可以很好的提高用户满意度。

(二) 、web搜索引擎的原理和实现

web搜索引擎的原理通常为:首先是用蜘蛛(Spider)进行全网搜索,自动抓取网页;然后将抓取的网页进行索引,同时也会记录与检索有关的属性,中文搜索引擎中还需要首先对中文进行分词;最后,接受用户查询请求,检索索引文件并按照各种参数进行复杂的计算,产生结果并返回给用户。

1.利用网络蜘蛛获取网络资源

这是一种半自动化的资源(由于此时尚未对资源进行分析和理解,不能成为信息而仅是资源)获取方式。所谓半自动化,是指搜索器需要人工指定起始网络资源URL(Uniform Resource Locator),然后获取该URL所指向的网络资源,并分析该资源所指向的其他资源并获取。如Google的在利用蜘蛛程序获取网络资源时,是由一个认为管理程序负责任务的分配和结果的处理,多个分布式的蜘蛛程序从管理程序活动任务,然后将获取的资源作为结果返回,并从新获得任务。

2.利用索引器从搜索器获取的资源中抽取信息,并建立利于检索的索引表

当用网络蜘蛛获取资源后,需要对这些进行加工过滤,去掉控制代码及无用信息,提取出有用的信息,并把信息用一定的模型表示,使查询结果更为准确。Web上的信息一般表现为网页,对每个网页,须生成一摘要,此摘要将显示在查询结果的页面中,告诉查询用户各网页的内容概要。模型化的信息将存放在临时数据库中,由于web数据的数据量极为庞大,为了提高检索效率,须按照一定规则建立索引。不同搜索引擎在建立索引时会考虑不同的选项,如是否建立全文索引,是否过滤无用词汇,是否使用meta信息等。

3.检索及用户交互

这部分的主要内容包括:用户查询(query)理解,即最大可能贴近的理解用户通过查询串想要表达的查询目的,并将用户查询转换化为后台检索使用的信息模型;根据用户查询的检索模型,在索引库中检索出结果集;结果排序:通过特定的排序算法,对检索结果集进行排序。由于web数据的海量性和用户初始查询的模糊性,检索结果集一般很大,而用户一边不会有足够的耐性逐个查看所有的结果,所以怎样设计结果集的排序算法,把用户感兴趣的结果排在前面就十分重要。

(三) 、web搜索引擎的最新动态

当前,搜索引擎技术已经趋于成数,用户满意度也保持在一个可以接受的水平。在信息搜集技术,索引建立技术,检索技术和结果集排序技术方面,最近几年,除了Google创造性的提出page rank技术,并把他用于结果排序外,基本没有什么突破性的进展。而搜索引擎的研究与信息集成逐渐融合,在这方面的研究主要集中在两个方面:查询扩展(query expansion)和结果集的动态分类。

二、             Google技术

(一)   Google技术概论

Google 秉持开发“完美的搜索引擎”的信念,在业界独树一帜。所谓完美的搜索引擎,就如公司创始人之一 Larry Page 所定义的那样,可以“确解用户之意,切返用户之需”。为了实现这一目标,Google 坚持不懈地追求创新,而不受现有模型的限制。因此,Google 开发了自己的服务基础结构和具有突破性的 Page Rank™ 技术,使得搜索方式发生了根本性变化。

Google 的开发人员从一开始就意识到:要以最快的速度提供最精确的搜索结果,则需要一种全新的服务器设置。大多数的搜索引擎依靠少量大型服务器,这样,在访问高峰期速度就会减慢,而 Google 却利用相互链接的 PC 来快速查找每个搜索的答案。 这一创新技术成功地缩短了响应时间,提高了可扩展性,并降低了成本。这也是其他公司一直在效仿的技术。与此同时,Google 从未停止过对其后端技术的改进,以使其技术效率更高。

Google 搜索技术所依托的软件可以同时进行一系列的运算,且只需片刻即可完成所有运算。而传统的搜索引擎在很大程度上取决于文字在网页上出现的频率。Google 使用 Page Rank™ 技术检查整个网络链接结构,并确定哪些网页重要性最高。然后进行超文本匹配分析,以确定哪些网页与正在执行的特定搜索相关。在综合考虑整体重要性以及与特定查询的相关性之后,Google 可以将最相关最可靠的搜索结果放在首位。

⑴Page Rank 技术:

通过对由超过 50,000 万个变量和 20 亿个词汇组成的方程进行计算,Page Rank 能够对网页的重要性做出客观的评价。Page Rank 并不计算直接链接的数量,而是将从网页 A 指向网页 B 的链接解释为由网页 A 对网页 B 所投的一票。这样,Page Rank 会根据网页 B 所收到的投票数量来评估该页的重要性。此外,Page Rank 还会评估每个投票网页的重要性,因为某些网页的投票被认为具有较高的价值,这样,它所链接的网页就能获得较高的价值。重要网页获得的 Page Rank(网页排名)较高,从而显示在搜索结果的顶部。Google 技术使用网上反馈的综合信息来确定某个网页的重要性。搜索结果没有人工干预或操纵,这也是为什么 Google 会成为一个广受用户信赖、不受付费排名影响且公正客观的信息来源。

⑵超文本匹配分析:

Google 的搜索引擎同时也分析网页内容。然而,Google 的技术并不采用单纯扫描基于网页的文本(网站发布商可以通过元标记控制这类文本)的方式,而是分析网页的全部内容以及字体、分区及每个文字精确位置等因素。Google 同时还会分析相邻网页的内容,以确保返回与用户查询最相关的结果。

Google 的创新并不限于台式机。 为了确保通过便携式设备访问网络的用户能够快速获得精确的搜索结果,Google 还率先推出了业界第一款无线搜索技术,以便将 HTML 即时转换为针对 WAP、I-mode、J-SKY 和 EZWeb 优化的格式。

(二)   Google 查询的全过程

Google 查询的全过程通常不超过半秒时间,但在这短短的时间内需要完成多个步骤,然后才能将搜索结果交付给搜索信息的用户。

3. 瞬间返回用户需要的搜索结果。

1. 网络服务器将查询发送到索引服务器。索引服务器所包含的内容与书本末尾的索引目录相似,即说明哪些网页包含与查询匹配的文字。

2.查询传输到文档服务器,由后者实际检索所存储的文档。然后,生成描述每个搜索结果的摘录。

三、             百度技术

(一)、百度搜索引擎概论

百度搜索引擎由四部分组成:蜘蛛程序、监控程序、索引数据库、检索程序。百度搜索引擎使用了高性能的“网络蜘蛛”程序自动的在互联网中搜索信息,可定制、高扩展性的调度算法使得搜索器能在极短的时间内收集到最大数量的互联网信息。百度在中国各地和美国均设有服务器,搜索范围涵盖了中国大陆、香港、台湾、澳门、新加坡等华语地区以及北美、欧洲的部分站点。百度搜索引擎拥有目前世界上最大的中文信息库。

(二)、百度搜索关键技术

⑴查询处理以及分词技术

随着搜索经济的崛起,人们开始越加关注全球各大搜索引擎的性能、技术和日流量。网络离开了搜索将只剩下空洞杂乱的数据,以及大量等待去费力挖掘的金矿。

但是,如何设计一个高效的搜索引擎?我们可以以百度所采取的技术手段来探讨如何设计一个实用的搜索引擎.搜索引擎涉及到许多技术点,比如查询处理,排序算法,页面抓取算法,CACHE机制,ANTI-SPAM等等.这些技术细节,作为商业公司的搜索引擎服务提供商比如百度,GOOGLE等是不会公之于众的.我们可以将现有的搜索引擎看作一个黑盒,通过向黑盒提交输入,判断黑盒返回的输出大致判断黑盒里面不为人知的技术细节.

查询处理与分词是一个中文搜索引擎必不可少的工作,而百度作为一个典型的中文搜索引擎一直强调其“中文处理”方面具有其它搜索引擎所不具有的关键技术和优势.那么我们就来看看百度到底采用了哪些所谓的核心技术.

⑵Spelling Checker拼写检查错误提示(以及拼音提示功能)

拼写检查错误提示是搜索引擎都具备的一个功能,也就是说用户提交查询给搜索引擎,搜索引擎检查看是否用户输入的拼写有错误,对于中文用户来说一般造成的错误是输入法造成的错误。这就依赖于百度的拼写检查系统,其大致运行过程如下:

后台作业: (1)前面的文章我们说过,百度分词使用的词典至少包含两个词典一个是普通词典,另外一个是专用词典(专名等),百度利用拼音标注程序依次扫描所有词典中的每个词条,然后标注拼音,如果是多音字则把多个音都标上,比如“长大”,会被标注为“zhang da /chang da”两个词条。(2)通过标注完的词条,建立同音词词典,比如上面的“长大”,会有两个词条: zhang daà长大 , chang daà长大。(3)利用用户查询LOG频率信息给予每个中文词条一个权重; (4)OK,同音词词典建立完成了,当然随着分词词典的逐步扩大,同音词词典也跟着同步扩大。

拼写检查: (1)用户输入查询,如果是多个子字符串,不作拼写检查; (2)对于用户查询,先查分词词典,如果发现有这个单词词条,OK,不作拼写检查; (3)如果发现词典里面不包含用户查询,启动拼写检查系统;首先利用拼音标注程序对用户输入进行拼音标注; (4)对于标注好的拼音在同音词词典里面扫描,如果没有发现则不作任何提示; (5)如果发现有词条,则按照顺序输出权重比较大的几个提示结果;

拼音提示: (1)对于用户输入的拼音在同音词词典里面扫描,如果没有发现则不作任何提示; (2)如果发现有词条,则按照顺序输出权重比较大的几个提示结果。

四、             结束语

本文就以上三个方面对Web搜索引擎的原理做了简单阐述,并结合现今流行使用的两个权威网站:GOOGLE和百度,对Web搜索引擎的应用的分析,做出简单理解。出于个人爱好和篇幅因素,未有详尽之处,势之必然

elya妞

~落花有意随流水,流水无情恋落花~

在 “【技术课堂1】搜索引擎技术原理~╰_╯” 上有 3 条评论

发表评论

电子邮件地址不会被公开。