目录一、 爬虫二、 索引器三、 检索器四、 用户接口正文
爬虫是搜索引擎的最基本的、最基层的程序。它是可以用c语言等的编程语言来编写的。爬虫又叫蜘蛛、机器人。一般来说搜索引擎为了提高信息捕捉速度会有几个爬虫程序,而每个爬虫程序可以在一秒中之内同时爬行几个百个网页(甚至更多),蜘蛛的爬行就是分析网页内容的过程,通过分析然后决定是否被收录。蜘蛛的爬行是通过网页中的超级链接来进行的。
这里有两种方式:
第一种,是通过已知的url集合(通常是知名的网站,该网站上有很多的链接,或是已经爬行过的网站)来逐个爬行,直至遍历所有的网页。
第二种,就是按照网页空间的域名,ip段,一个ip或是域名的区间来访问,通常是一个或几个蜘蛛负责一段区间的穷尽搜索。蜘蛛在爬行的时候会分析关键词,会切词……下面会有介绍。
索引器索引器是是参与搜索引擎最重要的过程的程序,索引器在分词与索引的过程中扮演者非常重要的角色。搜索引擎的查找信息的方式和我们平时查找的方式(例如在文本编辑器中输入ctrl+F)那是不一样的,按照这样的方式进行信息的查找,即使是一台功能非常强劲的超级计算机那也得花上非常长的一段时间,这样的方法显然是行不通的,因为用户等不了。
搜索引擎的开发人员一开始便考虑到了这样一点,所以采用了一招很聪明的方法,就是按关键词建立索引,这有点像我们平时在字典中查找字,我们在字典中查找一个字的时候并不是一页一页的翻来查找的,而是通过目录建立的索引来查找的,这个目录通常是按照偏旁部首、字母abc来建立的。那么搜索引擎也采用了相似的处理方式,在蜘蛛分析一个网页的时候是按照关键词的出现位置,频次然后建立索引。
比如说,通过分析江南社区这个论坛的网页找到了“网络营销论坛”,同样在别的网站比如说www.***.com(只是举个例子不一定存在这样的网站),那么搜索引擎就会给我的网站归为这一类关键词的索引中,并且给它排个序。同样的“seo优化”这个关键词出现在一些以seo为内容的网站上,比如seo十万个为什么等的,同样也涉及seo优化,所以“seo十万个为什么”属于这个关键词目录中,当用户在搜索框中输入“seo 网络营销”关键词时,检索器就要进行逻辑与运算,最后返回既符合seo搜索者的需要,有符合网络营销的网站——江南社区(这里只是举个例子)。这个逻辑与的运算其实它是二进制的运算,这个属于检索器的工作范畴,这里只是简单的提下方便大家有个整体的把握,更为详细的内容我会再写内容来详细介绍,不过也很简单。
我这里只是简单分析,但是实际上搜索引擎的原理肯定是比我所说的要复杂的多的检索器检索器用于拆分用户输入的关键词。先分词(常见的中文分词方式有正向最大匹配,反向最大匹配,最短路径分词法等的)。拆分后然后匹配检索索引目录然后返回匹配结果(就像上面介绍的那样)以一定的顺序返回给用户。 最后就是用户接口用户接口比较简单,就是提供给用户的是什么样的搜索页面,以及以什么样的结果页面返回给用户。这个涉及到复杂和简单接口,简单接口就是输入字符串;复杂接口就是我们有时候用的一些命令,如site,link等的可以让用户对查询结果进行限制的。
本文由江南社区原创首发,欢迎转载,为尊重原作者的劳动,转载时请注明出处江南社区,谢谢!
感谢 809151169 的投稿