请教,关于搜索引擎原理
现在很多网站都提供搜索引擎的功能,我想请问:搜索引擎是根据什么原理找到
相关网页的,是根据数据库中已存储的网页信息来找到的么?
问题点数:20、回复次数:6Top
1 楼honestzc(圣约翰)回复于 2003-09-03 20:21:48 得分 3
搜索引擎扫描IP网段,如果发现有WEB服务的,就遍历所有的网页,把网页的内容抓下来保存在数据库中,供别人查询。Top
2 楼feeboby(rockの终点)回复于 2003-09-04 00:04:08 得分 3
这样不是效率太低了
应该有数据库的吧Top
3 楼xlander(xlander)回复于 2003-09-06 12:17:04 得分 3
我发现google还能搜索doc,ppt什么的,那他的数据库岂不是很大?怎么每次显示的搜索时间都是很短的呢?而且,搜索第一页的时间跟搜索第100页的时间差不多。Top
4 楼zxyin1(zxyin1)回复于 2003-09-06 19:59:09 得分 1
gzTop
5 楼hbb1981(hbb)回复于 2003-09-07 07:08:22 得分 1
gzTop
6 楼xieweibbs(谢伟程序员论坛)回复于 2003-11-04 09:39:19 得分 9
搜索引擎并不真正搜索互联网,它搜索的实际上是预先整理好的网页索引数据库。
搜索引擎,也不能真正理解网页上的内容,它只能机械的匹配网页上的文字。
真正意义上的搜索引擎,通常指的是收集了互联网上几千万到几十亿个网页并对网页中的每一个文字(即关键词)进行索引,建立索引数据库的全文搜索引擎。当用户查找某个关键词的时候,所有在页面内容中包含了该关键词的网页都将作为搜索结果被搜出来。在经过复杂的算法进行排序后,这些结果将按照与搜索关键词的相关度高低,依次排列。
搜索引擎的原理,可以看做三步:从互联网上抓取网页→建立索引数据库→在索引数据库中搜索排序。
1. 从互联网上抓取网页
利用能够从互联网上自动收集网页的Spider系统程序,自动访问互联网,并沿着任何网页中的所有URL爬到其它网页,重复这过程,并把爬过的所有网页收集回来。
2. 建立索引数据库
由分析索引系统程序对收集回来的网页进行分析,提取相关网页信息(包括网页所在URL、编码类型、页面内容包含的所有关键词、关键词位置、生成时间、大小、与其它网页的链接关系等),根据一定的相关度算法进行大量复杂计算,得到每一个网页针对页面文字中及超链中每一个关键词的相关度(或重要性),然后用这些相关信息建立网页索引数据库。
3. 在索引数据库中搜索排序
当用户输入关键词搜索后,由搜索系统程序从网页索引数据库中找到符合该关键词的所有相关网页。因为所有相关网页针对该关键词的相关度早已算好,所以只需按照现成的相关度数值排序,相关度越高,排名越靠前。
最后,由页面生成系统将搜索结果的链接地址和页面内容摘要等内容组织起来返回给用户。
搜索引擎的Spider一般要定期重新访问所有网页(各搜索引擎的周期不同,可能是几天、几周或几月,也可能对不同重要性的网页有不同的更新频率),更新网页索引数据库,以反映出网页文字的更新情况,增加新的网页信息,去除死链接,并根据网页文字和链接关系的变化重新排序。这样,网页的具体文字变化情况就会反映到用户查询的结果中。
搜索引擎必须解决的两个关键问题:一是如何建立索引数据库;二是如何分析、匹配用户的查询。建立索引数据库要用到网络蜘蛛。初始化时,它们一般指向有一个URL(Uniform Resource Locators)池。在遍历Internet的过程中,按照深度优先或广度优先或其他其他启发式算法从URL池中取出若干URL处理,同时将遇到的未访问的URL放入URL池中,这样处理直到URL池空为止。在访问页面的过程中,完成对Web文档的索引。对文档索引可能根据文档的标题、首段落甚至整个页面内容进行。这取决于搜索服务的数据收集策略。蜘蛛在漫游的过程中,根据页面的标题,头,链接等生成摘要放在索引数据库中。如果是全文搜索,还需要将整个页面的内容保存到本地数据库。为了缓解网络拥塞,可以选网络负载较轻的时候进行网络漫游。
互联网虽然只有一个,但各搜索引擎的能力和偏好不同,所以抓取的网页各不相同,排序算法也各不相同。大型搜索引擎的数据库储存了互联网上几千万至几十亿的网页索引,数据量达到几千G甚至几万G。但即使最大的搜索引擎建立超过二十亿网页的索引数据库,也只能占到互联网上普通网页的不到30%,不同搜索引擎之间的网页数据重叠率一般在70%以下。我们使用不同搜索引擎的重要原因,就是因为它们能分别搜索到不同的网页。而互联网上有更大量的网页,是搜索引擎无法抓取索引的,也是我们无法用搜索引擎搜索到的。
你心里应该有这个概念:搜索引擎只能搜到它网页索引数据库里储存的网页文字信息。你也应该有这个概念:如果搜索引擎的网页索引数据库里应该有而你没有搜出来,那是你的能力问题,学习搜索技巧可以大幅度提高你的搜索能力。
搜索引擎及其分类
搜索引擎是一种浏览和检索数据集的工具。传统搜索的范围基本上局限于企业数据库,增值网络服务(VAN),桌面文件。但Internet的迅猛发展,使得搜索范围扩大到整个网络。面向Internet的搜索引擎是从各种网络资源中浏览和检索信息的工具。这些网络资源包括:Web、FTP文档、新闻组、Gopher、E-MAIL,以及多媒体信息等。按照搜索引擎提供的功能和使用的技术来分,目前Internet上的搜索引擎大致可以分成三类:
1、一般搜索引擎:利用网络蜘蛛对Internet资源进行索引,一般无须人工干预。所谓的网络蜘蛛是一个程序,通过自动读取一篇文档遍历Web的超链接结构,从而递归获得被引用的所有文档。不同的搜索引擎搜索的内容不尽相同:有的着重站点搜索;而有的搜索可能包括Gropher、新闻组、E-MAIL等。一般搜索引擎的性能主要取决于:索引数据库的容量、存放内容、以及更新速度,搜索速度,用户界面的友好程度以及是否易用等。
2、元搜索引擎:接受一个搜索请求,然后将该请求转交给其他若干个搜索引擎同时处理。最后对多个引擎的搜索结果进行整和处理后返回给查询者。整和处理包括诸如消除重复、对来自多个引擎的结果进行排序等。
3、专用引擎:譬如人物搜索、旅行路线搜索、产品搜索等。这些搜索都依赖于具体的数据库。
引擎的其他分类方法还有:按照自动化程度分为人工与自动引擎;按照是否有智能分智能与非智能引擎;按照搜索内容分文本搜索引擎、语音搜索引擎、图形搜索引擎、视频搜索引擎等。
Top




