在网络公司做过程序开发的朋友都知道,我们通常用的数据库搜索技术就是把用户输入的词汇,跟数据库中的某个或多个字段里的内容进行比较,同样,搜索引擎的运行原理简单来讲也就是这样:
用户输入一个词汇,搜索引擎从他的数据库中找到匹配的内容,再以有序的排列展现给用户,搜索引擎每天就是不厌其烦地不断重复这些操作。看似一切很正常,我们用数据来分析问题——
全球网民按20亿计算,全球所有网站的网页先假设是50亿个。
按每人每天搜索1次(也就是1个关键词,假设都是不重复的)
那么搜索引擎每天要从50亿个网页中搜索比对20亿个关键词。
呃。这个听起来很恐怖,你能想象吗?想象这个数据如此庞大,但搜索引擎每次的正常搜索时间都是不到一秒。的确,在这个过程中,按照我们传统的全文搜索方式,是不现实的。仔细看下下图,并注意“索引库查询”这几个字。
在解释什么是索引库和索引库在搜索引擎中起到什么作用前,我们同样举个形象的例子加以参考下:
我们在读书时,老师在讲课过程中,经常会说,请同学们翻到第几页,看下第几段,想起来了吗?快乐并无奈的校园生活是否历历在目了~_~,言归正传。在老师发出让你翻到第几页看第几段这个指令时,就是一种索引在运行了,这里的索引是第几页和第几段,有了这两个索引,即使你的书本厚达1000页,也可以在短时间里定位到具体的那一段话。
而搜索引擎自己的索引库的构成元素就是很多个词汇,汉字约有12W个,由这些汉字所组成的词语将近10W个,再说说英文,英文26个字母,组成的词汇暂且算作100W个吧,在讲索引库元素的排序方式之前,我们再进行这段数据的分析:
中文:50亿÷10W=5W
英文:50亿÷100W=5000
搜索引擎处理5W或5000个记录,是非常容易的一件事了。
明白了索引库的重要性,再剖析下索引库的构成形式:
在搜索引擎看来,再华丽的网站,也是一堆代码堆砌而成的,拿下文的代码来看:
经过搜索引擎的分析后,去除HTML代码,留下的是这些词汇,
那么其中的这些词汇就会进入到搜索引擎的索引库当中,而这些进入索引库的每个词汇后面又有很多个网站,就好比新华字典的目录索引页一样,笔画数是10的,通过索引快速查到,笔画数是20的,也可以通过索引快速查到。
搜索引擎就是通过建立这样的索引库,才能在用户搜索某个关键词时,快速做出返回页面的查询。(而至于排名的前后,我们不在本文中多说了)
再来简单讲下分词,上面提到的多少多少个词汇,这个就是分词了,但这些是通过我们人眼判断的,搜索引擎是如何进行分词的呢?搜索引擎再厉害,也只是程序,谷歌的中文分词技术是购买第三方公司得来的,而百度的分词技术是自创的,我们可以理解为百度事先把几W个词录进去,也可能是通过汉字的一定排列方式自由组合而成,这个不是我们关心和所能研究的,我们要了解的仅仅是分词这个概念。
了解了分词这个概念后,在我们做SEO时,也一定要通过搜索引擎的角度,让自己从网页的表面看到底层的收录抓取原理。
【尊重原创,分享观点。来自芝麻开门网络科技原创文章,转载请标明文章来源 — http://www.51zmkm.com/news/27.html】