【搜索引擎基础知识1】搜索引擎的技术架构
转自:http://blog.csdn.net/hguisu/article/details/7955985
1. 搜索引擎的分类
搜索引擎按其工作方式主要可分为三种:
分别是全文搜索引擎(Full Text Search Engine)
目录索引类搜索引擎(Search Index/Directory)
元搜索引擎(Meta Search Engine)。
■ 全文搜索引擎
全文搜索引擎是名副其实的搜索引擎,国外具代表性的有Google、Fast/AllTheWeb、AltaVista、Inktomi、Teoma、WiseNut等,国内著名的有百度(Baidu)。它们都是通过从互联网上提取的各个网站的信息(以网页文字为主)而建立的数据库中,检索与用户查询条件匹配的相关记录,然后按一定的排列顺序将结果返回给用户,因此他们是真正的搜索引擎。
从搜索结果来源的角度,全文搜索引擎又可细分为两种,一种是拥有自己的检索程序(Indexer),俗称“蜘蛛”(Spider)程序或“机器人”(Robot)程序,并自建网页数据库,搜索结果直接从自身的数据库中调用,如上面提到的7家引擎;另一种则是租用其他引擎的数据库,并按自定的格式排列搜索结果,如Lycos引擎。
在搜索引擎分类部分提到过全文搜索引擎从网站提取信息建立网页数据库的概念。搜索引擎的自动信息搜集功能分两种。一种是定期搜索,即每隔一段时间(比如Google一般是28天), 蜘蛛搜索引擎搜索引擎主动派出“蜘蛛”程序,对一定IP地址范围内的互联网站进行检索,一旦发现新的网站,它会自动提取网站的信息和网址加入自己的数据库。另一种是提交网站搜索,即网站拥有者主动向搜索引擎提交网址,它在一定时间内(2天到数月不等)定向向你的网站派出“蜘蛛”程序,扫描你的网站并将有关信息存入数据库,以备用户查询。由于近年来搜索引擎索引规则发生很大变化,主动提交网址并不保证你的网站能进入搜索引擎数据库,目前最好的办法是多获得一些外部链接,让搜索引擎有更多机会找到你并自动将你的网站收录。
当用户以关键词查找信息时,搜索引擎会在数据库中进行搜寻,如果找到与用户要求内容相符的网站,便采用特殊的算法——通常根据网页中关键词的匹配程度、出现的位置、频次、链接质量——计算出各网页的相关度及排名等级,然后根据关联度高低,按顺序将这些网页链接返回给用户。这种引擎的特点是搜全率比较高。
■ 目录索引
虽然有搜索功能,但严格意义上不能称为真正的搜索引擎,只是按目录分类的网站链接列表而已。(更简单说就是网址导航网站)
用户完全可以按照分类目录找到所需要的信息,不依靠关键词(Keywords)进行查询。目录索引中最具代表性的莫过于大名鼎鼎的Yahoo、新浪分类目录搜索。
与全文搜索引擎相比,目录索引有许多不同之处。
首先,搜索引擎属于自动网站检索,而目录索引则完全依赖手工操作。用户提交网站后,目录编辑人员会亲自浏览你的网站,然后根据一套自定的评判标准甚至编辑人员的主观印象,决定是否接纳你的网站。 目录索引其次,搜索引擎收录网站时,只要网站本身没有违反有关的规则,一般都能登录成功。而目录索引对网站的要求则高得多,有时即使登录多次也不一定成功。尤其象Yahoo这样的超级索引,登录更是困难。
此外,在登录搜索引擎时,我们一般不用考虑网站的分类问题,而登录目录索引时则必须将网站放在一个最合适的目录(Directory)。
最后,搜索引擎中各网站的有关信息都是从用户网页中自动提取的,所以用户的角度看,我们拥有更多的自主权;而目录索引则要求必须手工另外填写网站信息,而且还有各种各样的限制。更有甚者,如果工作人员认为你提交网站的目录、网站信息不合适,他可以随时对其进行调整,当然事先是不会和你商量的。
目录索引,顾名思义就是将网站分门别类地存放在相应的目录中,因此用户在查询信息时,可选择关键词搜索,也可按分类目录逐层查找。如以关键词搜索,返回的结果跟搜索引擎一样,也是根据信息关联程度排列网站,只不过其中人为因素要多一些。如果按分层目录查找,某一目录中网站的排名则是由标题字母的先后顺序决定(也有例外)。
目前,搜索引擎与目录索引有相互融合渗透的趋势。原来一些纯粹的全文搜索引擎现在也提供目录搜索,如Google就借用Open Directory目录提供分类查询。而象 Yahoo! 这些老牌目录索引则通过与Google等搜索引擎合作扩大搜索范围(注)。在默认搜索模式下,一些目录类搜索引擎首先返回的是自己目录中匹配的网站,如中国的搜狐、新浪、网易等;而另外一些则默认的是网页搜索,如Yahoo。这种引擎的特点是找的准确率比较高。
■ 元搜索引擎 (META Search Engine)
元搜索引擎在接受用户查询请求时,同时在其他多个引擎上进行搜索,并将结果返回给用户。著名的元搜索引擎有InfoSpace、Dogpile、Vivisimo等(元搜索引擎列表),中文元搜索引擎中具代表性的有搜星搜索引擎。在搜索结果排列方面,有的直接按来源引擎排列搜索结果,如Dogpile,有的则按自定的规则将结果重新排列组合,如Vivisimo。
除上述三大类引擎外,还有以下几种非主流形式:
垂直搜索引擎
垂直搜索引擎为2006年后逐步兴起的一类搜索引擎。不同于通用的网页搜索引擎,垂直搜索专注于特定的搜索领域和搜索需求(例如:机票搜索、旅游搜索、生活搜索、小说搜索、视频搜索等等),如国内的酷讯,去哪儿,携程等。在其特定的搜索领域有更好的用户体验。相比通用搜索动辄数千台检索服务器,垂直搜索需要的硬件成本低、用户需求特定、查询的方式多样。
集合式搜索引擎
集合式搜索引擎:该搜索引擎类似元搜索引擎,区别在于它并非同时调用多个搜索引擎进行搜索,而是由用户从提供的若干搜索引擎中选择,如HotBot在2002年底推出的搜索引擎。
门户搜索引擎
门户搜索引擎:AOLSearch、MSNSearch等虽然提供搜索服务,但自身既没有分类目录也没有网页数据库,其搜索结果完全来自其他搜索引擎。
免费链接列表
免费链接列表(Free For All Links简称FFA):一般只简单地滚动链接条目,少部分有简单的分类目录,不过规模要比Yahoo!等目录索引小很多。
2. 搜索引擎的技术架构
优秀的搜索引擎需要复杂的架构和算法,以 此来支撑对海量数据的获取、存储,以及对用户查询的快速而准确地响应。
从架构层面,搜索引擎需要能够对以百亿计的海量网页进行获取、存储、处理的能力,同 时要保证搜索结果的质量。
如何获取、存储并计算如此海量的数据?
如何快速响应用户的査 询?
如何使得搜索结果能够满足用户的信息需求?
这些都是搜索引擎面对的技术挑战。 下图是一个通用的搜索引笨架构示意图:
搜索引擎架构
搜索引擎由很多技术模块构成,各自负责整体 功能的一部分,相互紀合形成了完善的整体架构。
抓取网页:
搜索引擎的信息源来自于互联网网页,通过网络爬虫将互联网的信息获取到本地. 因 为互联网页面中有相当大比例的内容是完全相同或者近似重复的,"网页去重"模块会对此做 出检測,并去除重复内容。
建立索引:
抓取到网页后,搜索引擎会对网页进行解析,抽取出网页主体内容和相关信息,(包括网页所在URL、编码类型、页面内容包含的关键词、关键词位置、生成时间、大小、与其它网页的链接关系等)。根据一定的相关度算法进行大量复杂计算,得到每一个网页针对页面内容中及超链中每一个关键词的相关度(或重要性),然后用这些相关信息建立网页建立索引。为了加快响应用户査询的速度,网页内容通过"倒排索引"这种高效查询数据 结构来保存,而网页之间的链接关系也会予以保存。之所以要保存链接关系,是因为这种关系 在网F相关性排序阶段是可利用的,通过"链接分析"可以判断页面的相对重要性,对于为用 户提供准确的搜索结果帮助很大。
由于网页数量太多,搜索引擎不仅需要保存网页原始信息,还要存储一些中间的处理结果 使用单台或者少量的机器明显是不现实的。Google等商业搜索引擎为此开发了一整套云存储与 云计算平台,使用数以万计的普通廉价PC搭建了海量信息的可靠存储与计算架构,以此作为搜索 引擎及其相关应用的基础支撑。优秀的云存储与云计算平台已经成为大型商业搜索引擎的核心 竞争力。 上面所述是搜索引擎如何获取并存储海量的网页相关信息,这些功能因为不需要实时计 算,所以可以被看做是搜索弓I擎的后台计算系统。
查询词分析
搜索引擎的最重要目的是为用户提供准确全 面的搜索结果,如何响应用户査询并实时地提供准确结果构成了搜索引擎前台计算系统。 当搜索引擎接收到用户的査询词后,首先需要对查询词进行分析,希望能够结合查询词和 用户信息来正确推导用户的真正搜索意图。在此之后,首先在缓存中査找,搜索引擎的缓存系 统存储了不同的查询意图对应的搜索结果,如果能够在缓存系统找到满足用户需求的信息,则 可以直接将搜索结果返回给用户,这样既省掉了重复计算对资源的消耗,又加快了响应速度;
搜索结果排序
如果保存在缓存的信息无法满足用户需求,搜索引擎需要调用"网页排序"模快功能,根据用 户的査询实时计算哪些网页是满足用户信息需求的,并排序输出作为搜索结果。而网页排序最 重要的两个参考因素中,一个是内容相似性因素,即哪些网页是和用户查询密切相关的;另外 一个是网页重要性因素,即哪些网页是质量较好或者相对重要的,这点往往可以从链接分析的 结果获得。结合以上两个考虑因素,就可以对网页进行排序,作为用户查询的搜索结果。
参考文献:
《这就是搜索引擎:核心技术详解》
《搜索引擎—信息检索实践》
【搜索引擎基础知识1】搜索引擎的技术架构相关推荐
- 现代教育技术没有计算机基础知识教程,[现代教育技术计算机基础知识培训.ppt...
[现代教育技术计算机基础知识培训 现代教育技术考试 试卷结构 理论热身 第一部分 教学规划 第二部分 资源准备 第三部分 教学实施 第四部分 教学评价 常见的文件格式 可执行文件格式( *.exe * ...
- 存储系统基础知识与RAID存储技术介绍【转载自微信公众号开源Linux】
存储系统基础知识与RAID存储技术介绍 存储系统是整个IT系统的基石,是IT技术赖以存在和发挥效能的基础平台.早先的存储形式是存储设备(通常是磁盘)与应用服务器其他硬件直接安装于同一个机箱之内,并且该 ...
- 江西冶金职业技术学院计算机,计算机基础知识江西冶金职业技术学院.ppt
计算机基础知识江西冶金职业技术学院 第一章 计算机基础知识 1.1 概述 1.2 计算机的组成及工作原理 1.3 计算机的语言 1.4 计算机的性能和使用维护 1.5 计算机内部数据的表示 1.6 计 ...
- 【搜索引擎基础知识3】搜索引擎相关开源项目及网站
部分内容转自:http://blog.csdn.net/hguisu/article/details/8024799 一. 开源项目 apache lucene是apache下一个著名的开源搜索引擎内 ...
- Java基础知识(二) 面向对象的技术
Java基础知识 面向对象的技术 1. 面向对象与面向过程有什么区别 2. 面向对象有哪些特征 3. 什么是继承 4. 组合和继承的区别 5. 多态的实现机制 6. 重载和覆盖有什么区别 7. 抽象类 ...
- 计算机视觉技术的基础知识,计算机视觉及导航技术基础.pdf
计算机视觉及导航技术基础 计算机视觉与导航技术 第2章 计算机视觉与导航技术基础 主讲教师:赵龙 办公地点:新主楼E402 网 站: Email:flylong@ 本章讲授内容 1.引言 2.视觉中常 ...
- 单招计算机应用基础知识考试,四川邮电职业技术学院单招计算机应用基础考试大纲...
2021年高职单招升学一对一咨询小艺老师:18290437291(微信) 四川邮电职业技术学院单招计算机应用基础考试大纲 一.考试性质 本技能考试是中等职业学校(含普通中专.职业高中.技工学校和成人中 ...
- 【搜索引擎基础知识1】搜索引擎基本架构
(一)搜索引擎的开发一般可分为以下三大部分 1.数据采集层:一般使用爬虫获取互联网的数据,重要的开源项目有Heritrxi 2.数据分析处理层:将从互联网上获取到的数据进行提取归类.分词.语义分析得出 ...
- 【搜索引擎基础知识2】网络爬虫的介绍
转自:http://blog.csdn.net/hguisu/article/details/7949844 通用搜索引擎的处理对象是互联网网页,目前网页数量以百亿计,搜索引擎的网络爬虫能够高效地将海 ...
最新文章
- oracleHelper 操作帮助类
- “未卜先知”、“自学成才”:GANs奇思妙想TOP10
- kafka 脚本发送_Kafka笔记归纳(第五部分:一致性保证,消息重复消费场景及解决方式)...
- 计算机网络——数据帧和数据包的区别
- 2021浙江高考首考成绩查询,浙江2021选考成绩什么时候出成绩?附2021浙江学考成绩查询时间...
- mysql 临时列_在MySQL中添加一个带有值的临时列?
- Python把汉字转换成拼音
- 【转】常见面试之机器学习算法思想简单梳理
- jep在java的SpringBoot中的使用
- krpano JS动态切换旋转角
- 最新易支付多功能系统源码+全开源
- Minecraft Mod开发:1-配置工作环境
- npm -i 与npm install -s与-d的区别
- Spring AOP:原理、 通知、连接点、切点、切面、表达式
- 【多目标优化求解】基于matlab非支配排序灰狼优化(NS-GWO)算法求解多目标优化问题【含Matlab源码 2015期】
- 超神学院之天河战役计算机,《超神学院之雄兵连 第1季 天河战役篇》
- JS小数运算的正确姿势:保留两位小数技巧全解析
- 阿里巴巴2018招聘笔试题喝汽水
- 让M3D-RPN的3D目标检测网络初步跑起来!
- C++中吸取C的二等公民
热门文章
- Promise第二篇:你需要记着的API
- 【已解决】Exception in thread “Thread-0“ redis.clients.jedis.exceptions.JedisConnectionException: java.n
- C语言满分代码:L1-056 猜数字 (20分)
- 开放寻址法VS链表法
- android图片选择器框架支持长图,基于RxJava的Android图片选择器. – RxPicker
- linux给文件赋权限找不到,linux 文件赋权限
- mysql存储文件用什么类型_块存储、文件存储、对象存储的区别是什么?
- Java数据保留小数
- visio思维导图模板_如何下载思维导图模板?在线教你找精美漂亮的思维导图
- 计算机联网实验步骤,计算机网络技术实验操作过程.doc