上周我们学习了搜索引擎的索引机制,了解到在索引过程中,搜索引擎会对蜘蛛收录来的网页进行评分,以决定用户查询时这些页面显示在结果页的位置;最后将这些结果存储在服务器合适的位置。本周,我们将继续了解搜索引擎的工作原理的最后一个过程,查询并返回结果。
 
速度!
 
蜘蛛爬取、收录和索引是搜索引擎独自完成的工作,查询将是用户与搜索引擎共同完成的。用户提交一个关键字,搜索引擎从自己的索引库中检索匹配用户所输入的关键字,并返回有序的结果页。这是一个相当迅速的过程。
 
上图的示例是在Google中以关键字“刘德华”进行查询,在返回的结果页中我们看到,Google一共索引了大约一千九百五十万条含有“刘德华”的页面,返回结果的时间0.08秒。
 
0.08秒,这是个什么概念呢?我们假设Google目前收录了1亿个网页并已经索引(Google收录的中文网页可能已经超过几十亿甚至更多,想想新浪+搜狐+腾讯的页面数量),从我们点击搜索按钮到返回结果,Google用0.08秒的时间检索了这些页面并返回了有序的结果。
 
你可以回忆一下,在Windows里搜索一个只记得文件名的文件大概需要多久;也可以想象,你电脑的硬盘里存放了1亿首mp3,你用Windows搜索其中一首歌你的硬盘灯会闪多久。这里,我们要感叹一下,Google太快了!类似这样的查询Google只要0.08秒甚至更短就能完成;更让人佩服的是,Google在同一时刻,可能要处理数百万这样的查询。

事实上,搜索引擎在处理用户查询方面的处理技术是仅次于排序算法的核心技术,这里包括数据中心的管理能力、分布式处理技术等等,这每一项都让人叹服!
 
语义
 
感叹结束,我们开始进入正题。学过关系数据库或毕设做图书管理系统的同学可以简单的将Google从索引库里的检索结果的过程设想为一次数据库查询操作。我们的数据库里有一个表,以关键字为主键,还有链接、标题、正文等字段。当用户输入一个关键字是,Google会从这个表里Select这个关键字,并给出匹配结果。
 
逻辑上应该是这样,但搜索引擎做的远比这要复杂的多。如果用户只搜索一个关键字,搜索引擎如何从众多的结果中判断哪一个才是用户想要的?如果我搜索两个或者多个关键字,搜索引擎是否也要进行关联操作?那关联是以哪个关键字为第一匹配?
 
搜索引擎的查询过程是与用户交互的过程,而用户对同一个关键字的使用目的可能不同。对于Google的工程师来说,最让他们头疼的是用户关键字的处理,他们要设计一套复杂的算法来分析这些关键字以确定用户的具体行为诉求(对中文搜索可能更难些),因为网页的搜索框是不可能知道你搜索“MP3”的时候是想下载一些MP3音乐还是想买一款MP3播放器(比如Apple Nano)送给女朋友。
 
通常,搜索引擎会对关键字给予分析处理以确定某些关键字所属的领域、范围、类别、用户人群倾像等,通常这方面的处理参照来自一些语言学专家的研究和用户的历史搜索记录分析。这也是搜索引擎工作原理中的一项重要技术,一般称为语义分析。
 
像“MP3”这样的词,搜索引擎一般返回的是一种广泛的,以用户历史搜索数据为参考的结果;Google不知道你具体想搜索MP3音乐还是播放器,但Google记得,多数人搜索MP3是想找一些歌曲下载,有些人是想给女朋友送个音乐播放器。下图是Google搜索“MP3”的结果页截图
 
 
从上图的结果中我们可以得到以下结论:
 
1、下载MP3音乐的人不少,是否有版权问题?
2、的确有人想买MP3给女朋友,但要查查报价,看看评测
3、百度也在SEO,而且做的很好
4、Google的结果很公正,百度的MP3搜索的确是流量最大的mp3音乐下载入口
5、Google新近推出的Google音乐居然没有出现,我翻了五页,还没出现
 
呃,上面的结论都不是主要的。主要的结论是,我们要知道,MP3这个词大概有两类,歌曲或播放器;前一种也许用户要下载、要听,后一种也许用户想看报价、品牌或评测。这个思维过程,搜索引擎在处理大多数关键字时都要做,这就是语义分析。
 
针对语义分析,我们SEO要做的是迎合与取舍,迎合搜索引擎,增强所优化关键字与用户的匹配度。说的具体点,就是关键字的策略,这方面的知识会涉及到所优化网站的内容定位,竞争对手分析、用户分析、结果集分析等,现在来讲太过复杂,我们可能会在最后的课程里介绍。
 
分词
 
OK,我们已经搜索过“MP3”,但Google的结果并不满足我们的需要,其实我想找的的是刘德华的MP3,出现了下面的结果:
 
 
从结果页上来看,比较只搜索“MP3”,范围缩小到只有刘德华的MP3,没有其他MP3结果,更没有报价评测;比较只搜索“刘德华”,范围缩小到只有MP3,没有资讯、绯闻之类的结果。根据语义分析,Google判断了“MP3”的搜索范围应该是歌曲音乐下载一类,根据“刘德华”,Google判断除MP3应该是刘德华的而不是张学友的。
 
回头想想我们之前提过的关系数据库,可以简单的详细为一个关联检索过程,对“MP3”和“刘德华”同时进行查找。
 
请留意,我输入的是“MP3刘德华”,中间没有空格,也没有“的”之类的分割。Google伟大的搜索框自动将关键字拆分成“MP3”+"刘德华",而不是“M”+“P3刘德华”。这就是搜索引擎的分词,可以按照语义,将关键字拆分成合理的关键字组合。
 
通过关键字的分词策略,搜索引擎可以精确判断用户的搜索趋向,进而给出更匹配用户搜索需求的结果。
 
针对搜索引擎的分词,SEO要做事依然集中在关键字策略方面,这主要会涉及关键字相关性、模糊匹配、同义词优化,热门词优化以及标题伪原创等方面的内容;呃,我们还是要放在以后再讲。
 
其实,在搜索引擎查询并返回结果这一过程里,SEO可做的事很少,只是策略方面:我们要知道,搜索引擎会对用户的关键字进行语义分析和分词,这种策略要求我们在确定关键字时要贴近用户搜索习惯和历史搜索记录,这样可以有助于提高页面的命中率;在一些近义词关键字搜索时可以帮助我们提升结果页排名;众多的相关结果集在模糊搜索时可以起到优化热门关键字的效果。
 
好了,我们基本上已经了解了搜索引擎的工作原理,从你的网站被蜘蛛发现到爬取页面,再到对已爬取页面的索引,最后通过用户的查询将你的页面链接和描述显示在结果页。这就是收录、索引、检索的全过程。
你可能会问,那结果页上的排名呢?在搜索引擎的工作过程中,结果页的排名已经不重要了,因为那是很久以前就确定的了,在蜘蛛爬取时,收录时,特别是索引时就已经基本确定的;如果“前期的工作”做好了,不愁没有一个好的排名。
 
在接下来的课程中,我们将会逐步了解如何做好“前期工作”,这些将是具体的SEO策略和技巧;但回顾一下前面的课程留下的疑问你会发现,这些策略和技巧都将是针对搜索引擎的工作原理而来的。再强调一下,SEO是针对搜索引擎的优化,只有深入了解搜索引擎的工作原理和各项机制才能做好SEO。