搜索引擎查看源代码讨论查看历史
搜索引擎 |
中文名: 搜索引擎 外文名: search engine 分 类: 全文索引、目录索引等 代 表: 百度、谷歌等 作 用: 信息获取 关键技术: 网络爬虫、大数据处理等 |
所谓搜索引擎,就是根据用户需求与一定算法,运用特定策略从互联网检索出制定信息反馈给用户的一门检索技术。搜索引擎依托 于多种技术,如网络爬虫技术、检索排序技术、网页处理技术、大数据处理技术、自然语言处理技术等,为信息检索用户提供快速、高相关性的信息服务。搜索引擎技术的核心模块一般包括爬虫、索引、检索和排序等,同时可添加其他一系列辅助模块,以为用户创造更好的 网络使用环境。[1]
目录
定义
搜索引擎是指根据一定的策略、运用特定的计算机程序从互联网上采集信息,在对信息进行组织和处理后,为用户提供检索服务,将检索 的相关信息展示给用户的系统。搜索引擎是工作于互联网上的一门检索技术,它指在提高人们获取搜集信息的速度,为人们提供更好的网 络使用环境。从功能和原理上搜索引擎大致被分为全文搜索引擎、元搜索引擎、垂直搜索引擎和目录搜索引擎等四大类。
搜索引擎发展到今天,基础架构和算法在技术上都已经基本成型和成熟。搜索引擎已经发展成为根据一定的策略、运用特定的计算机程序 从互联网上搜集信息,在对信息进行组织和处理后,为用户提供检索服务,将用户检索相关的信息展示给用户的系统。
发展历程
搜索引擎是伴随互联网的发展而产生和发展的,互联网已成为人们学习、工作和生活中不可缺少的平台,几乎每个人上网都会使用搜索引擎。搜索引擎大致经历了四代的发展:
1、第一代搜索引擎
1994年第一代真正基于互联网的搜索引擎Lycos诞生,它以人工分类目录为主,代表厂商是Yahoo, 特点是人工分类存放网站的各种目录,用户通过多种方式寻找网站,现在也还有这种方式存在。
2、第二代搜索引擎
随着网络应用技术的发展,用户开始希望对内容进行查找,出现了第二代搜索引擎,也就是利用关键字来查询,最其代表性最成功的是Google,它建立在网页链接分析技术的基础上,使用关键字对网页搜索,能够覆盖互联网的大量网页内容,该技术可以分析网页的重要性后。 将重要的结果呈现给用户。
3、第三代搜索引擎
随着网络信息的迅速膨胀,用户希望能快速并且准确的查找到自己所要的信息,因此出现了第三代搜索引擎。相比前两代第三代搜索引擎 更加注重个性化、专业化智能化使用自动聚类、分类等人工智能技术,采用区域智能识别及内容分析技术,利用人工介入,实现技术和人工的完美结合,增强了搜索引擎的查询能力。第三代搜索引擎的代表是Google,它以宽广的信息覆盖率和优秀的搜索性能为发展搜索引擎 的技术开创了崭新的局面。
4、第四代搜索引擎
随着信息多元化的快速发展,通用搜索引擎在目前的硬件条件下要得到互联网上比较全面的信息是不太可能的,这时,用户就需要数据全面、更新及时、分类细致的面向主题搜索引擎,这种搜索引擎采用特征提取和文本智能化等策略,相比前三代搜索引擎更准确有效,被称为第四代搜索引擎。
工作原理
搜索引擎的整个工作过程视为三个部分:一是蜘蛛在互联网上爬行和抓取网页信息,并存入原始网页数据库;二是对原始网页数据库中的 信息进行提取和组织,并建立索引库;三是根据用户输入的关键词,快速找到相关文档,并对找到的结果进行排序,并将查询结果返回给 用户。以下对其工作原理做进一步分析:
一、网页抓取
Spider每遇到一个新文档,都要搜索其页面的链接网页。搜索引擎蜘蛛访问web页面的过程类似普通用户使用浏览器访问其页面,即B/S模 式。引擎蜘蛛先向页面提出访问请求,服务器接受其访问请求并返回HTML代码后,把获取的HTML代码存入原始页面数据库。搜索引擎使用 多个蜘蛛分布爬行以提高爬行速度。搜索引擎的服务器遍布世界各地,每一台服务器都会派出多只蜘蛛同时去抓取网页。如何做到一个页 面只访问一次,从而提高搜索引擎的工作效率。在抓取网页时,搜索引擎会建立两张不同的表,一张表记录已经访问过的网站,一张表记 录没有访问过的网站。当蜘蛛抓取某个外部链接页面URL的时候,需把该网站的URL下载回来分析,当蜘蛛全部分析完这个URL后,将这个URL存入相应的表中,这时当另外的蜘蛛从其他的网站或页面又发现了这个URL时,它会对比看看已访问列表有没有,如果有,蜘蛛会自动丢 弃该URL,不再访问。
二、预处理,建立索引
为了便于用户在数万亿级别以上的原始网页数据库中快速便捷地找到搜索结果,搜索引擎必须将spider抓取的原始web页面做预处理。网页预处理最主要过程是为网页建立全文索引,之后开始分析网页,最后建立倒排文件(也称反向索引)。Web页面分析有以下步骤:判断网页类型,衡量其重要程度,丰富程度,对超链接进行分析,分词,把重复网页去掉。经过搜索引擎分析处理后,web网页已经不再是原始的网页页面,而是浓缩成能反映页面主题内容的、以词为单位的文档。数据索引中结构最复杂的是建立索引库,索引又分为文档索引和关键词 索引。每个网页唯一的docID号是有文档索引分配的,每个wordID出现的次数、位置、大小格式都可以根据docID号在网页中检索出来。最 终形成wordID的数据列表。倒排索引形成过程是这样的:搜索引擎用分词系统将文档自动切分成单词序列-对每个单词赋予唯一的单词编号-记录包含这个单词的文档。倒排索引是最简单的,实用的倒排索引还需记载更多的信息。在单词对应的倒排列表除了记录文档编号之外,单词频率信息也被记录进去,便于以后计算查询和文档的相似度。
三、查询服务
在搜索引擎界面输入关键词,点击“搜索”按钮之后,搜索引擎程序开始对搜索词进行以下处理:分词处理、根据情况对整合搜索是否需 要启动进行判断、找出错别字和拼写中出现的错误、把停止词去掉。接着搜索引擎程序便把包含搜索词的相关网页从索引数据库中找出, 而且对网页进行排序,最后按照一定格式返回到“搜索”页面。查询服务最核心的部分是搜索结果排序,其决定了搜索引擎的量好坏及用 户满意度。实际搜索结果排序的因子很多,但最主要的因素之一是网页内容的相关度。影响相关性的主要因素包括如下五个方面。
(1)关键词常用程度。经过分词后的多个关键词,对整个搜索字符串的意义贡献并不相同。越常用的词对搜索词的意义贡献越小,越不常用的词对搜索词的意义贡献越大。常用词发展到一定极限就是停止词,对页面不产生任何影响。所以搜索引擎用的词加权系数高,常用词 加权系数低,排名算法更多关注的是不常用的词。
(2)词频及密度。通常情况下,搜索词的密度和其在页面中出现的次数成正相关,次数越多,说明密度越大,页面与搜索词关系越密切。
(3)关键词位置及形式。关键词出现在比较重要的位置,如标题标签、黑体、H1等,说明页面与关键词越相关。在索引库的建立中提到的,页面关键词出现的格式和位置都被记录在索引库中。
(4)关键词距离。关键词被切分之后,如果匹配的出现,说明其与搜索词相关程度越大,当“搜索引擎”在页面上连续完整的出现或者“搜索”和“引擎”出现的时候距离比较近,都被认为其与搜索词相关。
(5)链接分析及页面权重。页面之间的链接和权重关系也影响关键词的相关性,其中最重要的是锚文字。页面有越多以搜索词为锚文字的导入链接,说明页面的相关性越强。链接分析还包括了链接源页面本身的主题、锚文字周围的文字等。
分类
搜索方式是搜索引擎的一个关键环节,大致可分为四种:全文搜索引擎、元搜索引擎、垂直搜索引擎和目录搜索引擎,它们各有特点并适 用于不同的搜索环境。所以,灵活选用搜索方式是提高搜索引擎性能的重要途径。全文搜索引擎是利用爬虫程序抓取互联网上所有相关文 章予以索引的搜索方式;元搜索引擎是基于多个搜索引擎结果并对之整合处理的二次搜索方式;垂直搜索引擎是对某一特定行业内数据进 行快速检索的一种专业搜索方式;目录搜索引擎是依赖人工收集处理数据并置于分类目录链接下的搜索方式。
全文搜索引擎
一般网络用户适用于全文搜索引擎。这种搜索方式方便、简捷,并容易获得所有相关信息。但搜索到的信息过于庞杂,因此用户需要逐一 浏览并甄别出所需信息。尤其在用户没有明确检索意图情况下,这种搜索方式非常有效。
元搜索引擎
元搜索引擎适用于广泛、准确地收集信息。不同的全文搜索引擎由于其性能和信息反馈能力差异,导致其各有利弊。元搜索引擎的出现恰 恰解决了这个问题,有利于各基本搜索引擎间的优势互补。而且本搜索方式有利于对基本搜索方式进行全局控制,引导全文搜索引擎的持 续改善。
垂直搜索引擎
垂直搜索引擎适用于有明确搜索意图情况下进行检索。例如,用户购买机票、火车票、汽车票时,或想要浏览网络视频资源时,都可以直 接选用行业内专用搜索引擎,以准确、迅速获得相关信息。
目录搜索引擎
目录搜索引擎是网站内部常用的检索方式。本搜索方式指在对网站内信息整合处理并分目录呈现给用户,但其缺点在于用户需预先了解本 网站的内容,并熟悉其主要模块构成。总而观之,目录搜索方式的适应范围非常有限,且需要较高的人工成本来支持维护。
主要特点
1、信息抓取迅速。
在大数据时代,网络产生的信息浩如烟海,令人无所适从,难以得到自己需要的信息资源。在搜索引擎技术的帮助下,利用关键词、高级 语法等检索方式就可以快速捕捉到相关度极高的匹配信息。
2、深入开展信息挖掘。
搜索引擎在捕获用户需求的信息的同时,还能对检索的信息加以一定维度的分析,以引导其对信息的使用与认识。例如,用户可以根据检 索到的信息条目判断检索对象的热度,还可以根据检索到的信息分布给出高相关性的同类对象,还可以利用检索到的信息智能化给出用户 解决方案,等等。
3、检索内容的多样化和广泛性。
随着搜索引擎技术的日益成熟,当代搜索引擎技术几乎可以支持各种数据类型的检索,例如自然语言、智能语言、机器语言等各种语言。 目前,不仅视频、音频、图像可以被检索,而且人类面部特征、指纹、特定动作等也可以被检索到。可以想象,在未来几乎一切数据类型 都可能成为搜索引擎的检索对象。
体系结构
搜索引擎基本结构一般包括:搜索器、索引器、检索器、用户接口等四个功能模块。
1、搜索器:
搜索器也叫网络蜘蛛,是搜索引擎用来爬行和抓取网页的一个自动程序,在系统后台不停歇地在互联网各个节点爬行,在爬行过程中尽可 能快的发现和抓取网页。
2、索引器。
它的主要功能是理解搜索器所采集的网页信息,并从中抽取索引项。
3、检索器。
其功能是快速查找文档,进行文档与查询的相关度评价,对要输出的结果进行排序。
4、用户接口。
它为用户提供可视化的查询输入和结果输出的界面。
功能模块
搜索引擎中各关键功能模块功能简介如下:
(1)爬虫:从互联网爬取原始网页数据,存储于文档知识库服务器。
(2)文档知识库服务器:存储原始网页数据,通常是分布式Key-Value数据库,能根据URL/UID快速获取网页内容。
(3)索引:读取原始网页数据,解析网页,抽取有效字段,生成索引数据。索引数据的生成方式通常是增量的,分块/分片的,并会进行索引合并、优化和删除。生成的索引数据通常包括:字典数据、倒排表、正排表、文档属性等。生成的索引存储于索引服务器。
(4)索引服务器:存储索引数据,主要是倒排表,通常是分块、分片存储,并支持增量更新和删除。数据内容量非常大时,还根据类别、主题、时间、网页质量划分数据分区和分布,更好地服务在线查询。
(5)检索:读取倒排表索引,响应前端查询请求,返回相关文档列表数据。
(6)排序:对检索器返回的文档列表进行排序,基于文档和查询的相关性、文档的链接权重等属性。
(7)链接分析:收集各网页的链接数据和锚文本(Anchor Text),以此计算各网页链接评分,最终会作为网页属性参与返回结果排序。
(8)网页去重:提取各网页的相关特征属性,计算相似网页组,提供离线索引和在线查询的去重服务。
(9)网页反垃圾:收集各网页和网站历史信息,提取垃圾网页特征,从而对在线索引中的网页进行判定,去除垃圾网页。
(10)查询分析:分析用户查询,生成结构化查询请求,指派到相应的类别、主题数据服务器进行查询。
(11)页面描述/摘要:为检索和排序完成的网页列表提供相应的描述和摘要。
(12)前端:接受用户请求,分发至相应服务器,返回查询结果。
关键技术
搜索引擎工作流程主要有数据采集、数据预处理、数据处理、结果展示等阶段。在各工作阶段分别使用了网络爬虫、中文分词、大数据处 理、数据挖掘等技术。
网络爬虫也被称为蜘蛛或者网络机器人,它是搜索引擎抓取系统的重要组成部分。网络爬虫根据相应的规则,以某些站点作为起始站点通 过各页面上的超链接遍历整个互联网,利用URL弓I用根据广度优先遍历策略从一个html文档爬行到另一个html文档来抓取信息。
中文分词是中文搜索引擎中一个相当关键的技术,在创建索引之前需要将中文内容合理的进行分词。中文分词是文本挖掘的基础,对于输 入的一段中文,成功的进行中文分词,可以达到电脑自动识别语句含义的效果。
大数据处理技术是通过运用大数据处理计算框架,对数据进行分布式计算。由于互联网数据量相当庞大,需要利用大数据处理技术来提高 数据处理的效率。在搜索引擎中,大数据处理技术主要用来执行对网页重要度进行打分等数据计算。
数据挖掘就是从海量的数据中采用自动或半自动的建模算法,寻找隐藏在数据中的信息,是从数据库中发现知识的过程。数据挖掘一般和 计算机科学相关,并通过机器学习、模式识别、统计学等方法来实现知识挖掘。在搜索引擎中主要是进行文本挖掘,搜索文本信息需要理 解人类的自然语言,文本挖掘指从大量文本数据中抽取隐含的、未知的、可能有用的信息。
面临问题
网页时效性:互联网上的用户众多,数据信息来源极广,互联网上的网页是呈实时动态变化的,网页的更新、删除等变动极为频繁,有时 候会出现新更新的网页在爬虫程序还来不及抓取的时候却已经被删除的情况,这将大大影响搜索结果的准确性。
大数据存储问题:爬虫抓取的数据在经过预处理后数据量依然相当庞大,这给大数据存储技术带来相当大的挑战。当前大部分搜索引擎都 是利用结构化的数据库来存储数据,结构化的数据库存储的数据具有高共享、低冗余等特点,然而由于结构化的数据库难以并发查询所以 存在查询效率受限的问题。
检索结果可靠性:目前由于数据挖掘技术以及计算机硬件的限制使得数据处理准确度未能达到理想程度,而且由于一些个人或公司利用搜 索引擎现有的漏洞通过作弊手段来干扰检索结果导致检索结果的可靠性可能会有损失。
发展趋势
1、社会化搜索
社交网络平台和应用占据了互联网的主流,社交网络平台强调用户之间的联系和交互,这对传统的搜索技术提出了新的挑战。
传统搜索技术强调搜索结果和用户需求的相关性,社会化搜索除了相关性外,还额外增加了一个维度,即搜索结果的可信赖性。对某个搜 索结果,传统的结果可能成千上万,但如果处于用户社交网络内其他用户发布的信息、点评或验证过的信息则更容易信赖,这是与用户的 心里密切相关的。社会化搜索为用户提供更准确、更值得信任的搜索结果。
2、实时搜索
对搜索引擎的实时性要求日益增高,这也是搜索引擎未来的一个发展方向。
实时搜索最突出的特点是时效性强,越来越多的突发事件首次发布在微博上,实时搜索核心强调的就是“快”,用户发布的信息第一时间 能被搜索引擎搜索到。不过在国内,实时搜索由于各方面的原因无法普及使用,比如Google的实时搜索是被重置的,百度也没有明显的实时搜索入口。
3、移动搜索
随着智能手机的快速发展,基于手机的移动设备搜索日益流行,但移动设备有很大的局限性,比如屏幕太小,可显示的区域不多,计算资 源能力有限,打开网页速度很慢,手机输入繁琐等问题都需要解决。
目前,随着智能手机的快速普及,移动搜索一定会更加快速的发展,所以移动搜索的市场占有率会逐步上升,而对于没有移动版的网站来 说,百度也提供了“百度移动开放平台”来弥补这个缺失。
4、个性化搜索
个性化搜索主要面临两个问题:如何建立用户的个人兴趣模型?在搜索引擎里如何使用这种个人兴趣模型?
个性化搜索的核心是根据用户的网络行为,建立一套准确的个人兴趣模型。而建立这样一套模型,就要全民收集与用户相关的信息,包括 用户搜索历史、点击记录、浏览过的网页、用户E-mail信息、收藏夹信息、用户发布过的信息、博客、微博等内容。比较常见的是从这些 信息中提取出关键词及其权重。为不同用户提供个性化的搜索结果,是搜索引擎总的发展趋势,但现有技术有很多问题,比如个人隐私的 泄露,而且用户的兴趣会不断变化,太依赖历史信息,可能无法反映用户的兴趣变化。
5、地理位置感知搜索
目前,很多手机已经有GPS的应用了,这是基于地理位置感知的搜索,而且可以通过陀螺仪等设备感知用户的朝向,基于这种信息,可以为用户提供准确的地理位置服务以及相关搜索服务。目前,此类应用已经大行其道,比如手机地图APP。
6、跨语言搜索
如何将中文的用户查询翻译为英文查询,目前主流的方法有3种:机器翻译、双语词典查询和双语语料挖掘。对于一个全球性的搜索引擎来说,具备跨语言搜索功能是必然的发展趋势,而其基本的技术路线一般会采用查询翻译加上网页的机器翻译这两种技术手段。
7、多媒体搜索
目前,搜索引擎的查询还是基于文字的,即使是图片和视频搜索也是基于文本方式。那么未来的多媒体搜索技术则会弥补查询这一缺失。 多媒体形式除了文字,主要包括图片、音频、视频。多媒体搜索比纯文本搜索要复杂许多,一般多媒体搜索包含4个主要步骤:多媒体特征提取、多媒体数据流分割、多媒体数据分类和多媒体数据搜索引擎。
8、情境搜索
情境搜索是融合了多项技术的产品,上面介绍的社会化搜索、个性化搜索、地点感知搜索等都是支持情境搜索的,目前Google在大力提倡 这一概念。所谓情境搜索,就是能够感知人与人所处的环境,针对“此时此地此人”来建立模型,试图理解用户查询的目的,根本目标还 是要理解人的信息需求。比如某个用户在苹果专卖店附近发出“苹果”这个搜索请求,基于地点感知及用户的个性化模型,搜索引擎就有 可能认为这个查询是针对苹果公司的产品,而非对水果的需求。